此代码是不工作:如何在使用jquery hasClass方法时获得div的id?
$("div").hasClass("testSection").attr("id");
我收到以下错误信息:
TypeError: $(...).hasClass(...).attr is not a function
任何想法,问题可能是什么?
此代码是不工作:如何在使用jquery hasClass方法时获得div的id?
$("div").hasClass("testSection").attr("id");
我收到以下错误信息:
TypeError: $(...).hasClass(...).attr is not a function
任何想法,问题可能是什么?
的问题是因为hasClass()
返回一个布尔值,而不是一个jQuery对象。因此,在布尔值上调用attr()
会导致您看到的错误。
假设只存在一个与指定类的div你可以使用类选择:
var id = $("div.testSection").prop("id");
如果有与类多个div,你需要循环:
$("div.testSection").each(function() {
var id = this.id;
// do something with the id...
});
干杯,这正是我需要的! – Bobby
.hasClass("testSection")
返回一个布尔值。它不会返回一个jQuery对象来链。
另外你也明白,当匹配多个元素时,使用特定函数如.attr
会从第一个选定元素返回。
$("div").attr('id'); => $('div').eq(0).attr('id');
感谢Vega更新我的jQuery知识 –
hasClass将返回true或false没有反对,用这个,
$("div.testSection")
如果您希望获取一组元素的所有id,则需要使用for构造或jQuery的每个函数来遍历它们。我还建议使用道具()在ATTR(),尽管在这种情况下,它没有多大关系:
的jsfiddle例如: http://jsfiddle.net/turiyag/QXyWV/1/
$.each($("div.foo"),function(index,value) {
log($(value).prop("id") + " ");
});
'.hasClass( “testSection”)'返回true或错误,这就是为什么它不起作用。你想选择类'testSection'的div吗? –