
jquery 选择器问题
问题:
如何在使用 jQuery 选择器时,将所有超链接的链接地址更改为其内嵌文本?
代码:
var hyperlinks = $("a");
for (let i = 0; i < hyperlinks.length; i++) {
//hyperlinks[i].attr("href", hyperlinks[i].innerHTML);
hyperlinks[i].href = hyperlinks[i].innerHTML;
}问题点:
注释掉的代码行 hyperlinks[i].attr("href", hyperlinks[i].innerHTML); 无法生效。
解决方案:
要使注释掉的代码行生效,建议改用以下写法:
for (let i = 0; i < hyperlinks.length; i++) {
$(hyperlinks[i]).attr("href", hyperlinks[i].innerHTML);
}原因:
原始代码中,hyperlinks[i] 是一个 DOM 元素,而 hyperlinks[i].attr() 是 jQuery 方法。要使用 jQuery 方法,需要将 DOM 元素包装成 jQuery 对象。
建议在选择对象时,打印其内容来比较差异,例如:
console.log(hyperlinks[i]);
通过比较,可以清楚地看到 DOM 元素和 jQuery 对象之间的差异。










