未捕获的TypeError:对象#<HTMLDivElement>没有方法'attr'

Gle*_*000 18 javascript jquery

我试图用类工具提示抓住我的div.

然后做这样的事情:

var schemes = $(".tooltip");

for (var i in schemes) {
    var scheme = schemes[i];
    console.log(scheme.attr("cost"));
}
Run Code Online (Sandbox Code Playgroud)

但它抛出了上述错误.我错过了什么?(显然我是javascript + jquery的新手)

Vis*_*ioN 33

如果您使用for-loop迭代jQuery集,您应该使用eq()方法获取元素,但不使用方括号表示法(即[]).类似的代码$(".tooltip")[i]将获取DOM元素,但不会获取 jQuery对象.

var schemes = $(".tooltip");
for (var i = 0; i < schemes.length; i++) {
    var scheme = schemes.eq(i);
    console.log(scheme.attr("cost"));
}
Run Code Online (Sandbox Code Playgroud)

但是,您可能总是使用each()迭代jQuery集:

$(".tooltip").each(function() {
    var scheme = $(this);
    console.log(scheme.attr("cost"));
});
Run Code Online (Sandbox Code Playgroud)