此代码不起作用:
$("div").hasClass("testSection").attr("id");
我收到以下错误消息:
TypeError: $(...).hasClass(...).attr 不是函数
知道问题可能是什么吗?
此代码不起作用:
$("div").hasClass("testSection").attr("id");
我收到以下错误消息:
TypeError: $(...).hasClass(...).attr 不是函数
知道问题可能是什么吗?
.hasClass("testSection")
返回一个布尔值。它不会返回要链接的 jQuery 对象。
你也明白,当匹配多个元素时,使用特定的函数就像.attr
会从第一个选定的元素返回。
$("div").attr('id'); => $('div').eq(0).attr('id');
问题是因为hasClass()
返回一个布尔值,而不是一个 jQuery 对象。因此,调用attr()
布尔值会导致您看到的错误。
假设只有一个具有指定类的 div,您可以在选择器中使用该类:
var id = $("div.testSection").prop("id");
如果该类有多个 div,则需要循环:
$("div.testSection").each(function() {
var id = this.id;
// do something with the id...
});
hasClass 将返回 true 或 false 不是对象,使用这个,
$("div.testSection")
如果您希望获取一组元素的所有 id,则需要使用 for 构造或 jQuery 的 each 函数对它们进行迭代。我还建议使用 prop() 而不是 attr(),尽管在这种情况下它并不重要:
JSFiddle 示例:http: //jsfiddle.net/turiyag/QXyWV/1/
$.each($("div.foo"),function(index,value) {
log($(value).prop("id") + " ");
});