gpt4 book ai didi

javascript - 为什么 .attr() 对 $(this) 起作用,但对 every() 的参数不起作用?

转载 作者:行者123 更新时间:2023-11-28 11:35:04 25 4
gpt4 key购买 nike

我在node.js上使用cheerio(即jQuery服务器端)来解析网页。当尝试获取元素的 href 属性时,我收到以下错误:

TypeError: Object # has no method 'attr'

我的代码是:

$('#commandes_pagination li a').each(function(index, element) {
console.log(element.attr('href'));
});

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>

我可以通过使用 $(this).attr("href") 而不是 element.attr("href") 来让它工作,但我不能找出原因。非常感谢任何解释!

最佳答案

传递给 each() 处理程序的 element 变量是一个原生 JS DOM 元素,它没有 attr() 方法。您需要将其转换为 jQuery 对象才能对其使用 attr():

$('#commandes_pagination li a').each(function(index, element) {
console.log($(element).attr('href'));
});

或者,如果您想保留 native 对象,可以使用 console.log(element.href);

关于javascript - 为什么 .attr() 对 $(this) 起作用,但对 every() 的参数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23807378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com