问问题
223 次
5 回答
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
而不是访问 DOM 元素a
。
于 2012-05-07T15:26:02.233 回答
5
试试这个 wherethis
指的是匹配集中的每个锚元素。
function SetUrlParams() {
$("#sidebarItems > li > a").each(function(){
this.href = "MyURLOfChoice";
});
}
请注意,在您的代码a
中指的是 dom 元素,因此如果您想保留代码,则应在调用任何 jQuery 方法之前将其转换为 jQuery 对象。
于 2012-05-07T15:26:10.510 回答
3
$('#sidebaritems > li > a').each( function(){
this.href = newURL;
});
于 2012-05-07T15:27:38.840 回答
2
传递给函数的第二个参数each
将是 DOM 元素,而不是 jQuery 对象。您需要使用$(a)
,或者也$(this)
可以使用。
于 2012-05-07T15:27:25.377 回答
2
我对此进行了测试,它在这里工作
$("#sidebarItems > li > a").each(function (idx, a) {
$(a).attr("href", "MyURLOfChoice");
});
似乎一个参数是一个 HtmlElement,没有被 jquery 包装
于 2012-05-07T15:34:25.817 回答