我想用新的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 包装