我在node.js上使用cheerio(即jQuery服务器端)来解析网页.当试图获取href元素的属性时,我收到以下错误:
TypeError:Object#没有方法'attr'
我的代码是:
$('#commandes_pagination li a').each(function(index, element) {
console.log(element.attr('href'));
});
Run Code Online (Sandbox Code Playgroud)
HTML是这样的:
<ul class="liste04" id="commandes_pagination">
<li>
<a shape="rect" title="" href="/refonte/account/ajax/orderlist/1" class="page_num page_active" id="commandes_page-1">1</a>
</li>
<li>
<a shape="rect" title="" href="/refonte/account/ajax/orderlist/2" class="page_num" id="commandes_page-2">2</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我可以通过使用$(this).attr("href")而不是element.attr("href")但我无法弄清楚原因.任何解释都非常感谢!
element传递给each()处理程序的变量是本机JS DOM元素,它没有该attr()方法.您需要将其转换为jQuery对象才能attr()在其上使用:
$('#commandes_pagination li a').each(function(index, element) {
console.log($(element).attr('href'));
});
Run Code Online (Sandbox Code Playgroud)
或者,console.log(element.href);如果要保留本机对象,则可以使用.