未捕获的TypeError:对象#没有方法’attr’

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

然后做这样的事情:

var schemes = $(".tooltip"); for (var i in schemes) { var scheme = schemes[i]; console.log(scheme.attr("cost")); } 

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

如果使用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")); } 

但是,您可以始终使用each()来迭代jQuery集:

 $(".tooltip").each(function() { var scheme = $(this); console.log(scheme.attr("cost")); }); 
 var schemes = $(".tooltip"); schemes.each(function(index, elem) { console.log($(elem).attr('cost')); }); 

作为旁注,“cost”不是任何元素的有效属性,据我所知,你可能应该使用数据属性。