我想用新网址替换列表中的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");
});
答案 0 :(得分:5)
第二个参数是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元素。
答案 1 :(得分:5)
尝试使用this
引用匹配集中的每个锚元素。
function SetUrlParams() {
$("#sidebarItems > li > a").each(function(){
this.href = "MyURLOfChoice";
});
}
请注意,在代码a
中引用了dom元素,因此如果要保留代码,则应在调用任何jQuery方法之前将其转换为jQuery对象。
答案 2 :(得分:3)
$('#sidebaritems > li > a').each( function(){
this.href = newURL;
});
答案 3 :(得分:2)
传递给each
的函数中的第二个参数将是DOM元素,而不是jQuery对象。您需要使用$(a)
,或者$(this)
也可以使用。
答案 4 :(得分:2)
我对此进行了测试,它正在运行here
$("#sidebarItems > li > a").each(function (idx, a) {
$(a).attr("href", "MyURLOfChoice");
});
看来参数是一个HtmlElement,没有被jquery
包装