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

bir*_*dus 1 javascript jquery

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

我有这样的事情:

<ul id="sidebarItems">
   <li><a href="/PartBasicInfo/XX">Part Basic Info</a></li>
   <li><a href="/SupplierContracts/XX">Supplier Contracts</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

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

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

gdo*_*ica 5

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

function SetUrlParams() {
    $("#sidebarItems > li > a").each(function(idx, a) {
        $(a).attr("href", "MyURLOfChoice");
    });
}?
Run Code Online (Sandbox Code Playgroud)

或者将jQuery留给这个简单的任务:

function SetUrlParams() {
    $("#sidebarItems > li > a").each(function(idx, a) {
        a.href = "MyURLOfChoice";
    });
}?
Run Code Online (Sandbox Code Playgroud)

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


Sha*_*oli 5

试试这里this引用匹配集中的每个锚元素.

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

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