jquery 选择器的问题
要给页面所有超链接的目标地址设定为超链接的内嵌文本时,我们可能会遇到这样的代码:
var hyperlinks =$("a"); for (let i = 0; i < hyperlinks.length; i++) { //alert(hyperlinks[i].innerHTML); //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]) 将其包装为一个jQuery对象。jQuery对象提供了 attr() 方法,可以修改元素的属性,而原生DOM对象没有此方法,因此需要使用 href 属性的赋值语句。
在不清楚对象类型时,建议使用 console.log() 打印出来进行对比,以查看两者的差异。
以上就是jQuery 选择器中,为什么使用 attr() 方法修改超链接目标地址时,原生DOM对象无法生效?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号