如何使用 jQuery 在 <li> 中引用 <a>

How to reference <a> within <li> with jQuery

本文关键字:引用 何使用 li jQuery      更新时间:2023-09-26

我想用新的URL替换列表中的HREF

我有这样的东西:

<ul id="sidebarItems">
   <li><a href="/PartBasicInfo/XX">Part Basic Info</a></li>
   <li><a href="/SupplierContracts/XX">Supplier Contracts</a></li>
</ul>

我正在尝试这个(我知道有很多方法可以做到这一点),但没有任何运气。有什么想法吗?

function SetUrlParams() {
        $("#sidebarItems > li > a").each(function (idx, a) {
            a.attr("href", "MyURLOfChoice");
        });

第二个参数是 DOM 元素,而不是 jQuery 元素,用 $(a) 包装a

function SetUrlParams() {
    $("#sidebarItems > li > a").each(function(idx, a) {
        $(a).attr("href", "MyURLOfChoice");
    });
}​

或者让jQuery完成这个简单的任务:

function SetUrlParams() {
    $("#sidebarItems > li > a").each(function(idx, a) {
        a.href = "MyURLOfChoice";
    });
}​

请注意,您可以使用 this 而不是 a 访问 DOM 元素。

试试这个,this引用匹配集合中的每个锚元素。

 function SetUrlParams() {
    $("#sidebarItems > li > a").each(function(){
       this.href = "MyURLOfChoice";
    });
 }

请注意,在您的代码中,a引用 dom 元素,因此如果您想保留代码,则应在调用任何 jQuery 方法之前将其转换为 jQuery 对象。

$('#sidebaritems > li > a').each( function(){
    this.href = newURL;
});
传递给

each的函数中的第二个参数将是DOM元素,而不是jQuery对象。你需要使用$(a),或者只是$(this)也可以工作。

我对此进行了测试,它在这里工作

$("#sidebarItems > li > a").each(function (idx, a) {
        $(a).attr("href", "MyURLOfChoice");
    });

看起来一个参数是一个 HtmlElement,而不是被 jquery 包装