使用jquery hasClass方法时如何获取div的id?

Yet*_*ene 1 jquery

此代码无效:

$("div").hasClass("testSection").attr("id");
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

TypeError:$(...).hasClass(...).attr不是函数

知道问题可能是什么?

Sel*_*gam 5

.hasClass("testSection")返回一个布尔值.它不会将jQuery对象返回到链.

您也明白,在匹配多个元素时,使用特定函数,例如.attr从第一个选定元素返回.

$("div").attr('id'); => $('div').eq(0).attr('id');
Run Code Online (Sandbox Code Playgroud)


Ror*_*san 5

问题是因为hasClass()返回一个布尔值,而不是 jQuery 对象。因此,调用attr()布尔值会导致您看到的错误。

假设只有一个 div 具有指定的类,您可以在选择器中使用该类:

var id = $("div.testSection").prop("id");
Run Code Online (Sandbox Code Playgroud)

如果该类有多个 div,则需要循环:

$("div.testSection").each(function() {
    var id = this.id;
    // do something with the id...
});
Run Code Online (Sandbox Code Playgroud)