我尝试用jquery更改3个a-tags的href。 目前,我用普通的javascript做到了这一点。
var catNav = $('ul.nav'),
newLink = ['new1/','new2','nwe3/'];
catNav.attr('id','node');
var node =document.getElementById('node');
for(var i=0; i<3; i++){
node.childNodes[i].firstChild.href=newLink[i];
}
我想要你什么告诉我我是怎么做的
for(var i=0; i<3; i++){
node.childNodes[i].firstChild.href=newLink[i];
}
用jquery。
这是一个例子 http://jsfiddle.net/HFj2D/1/
答案 0 :(得分:2)
这应该做的全部事情:
var newLink = ['new1/','new2','nwe3/'];
$("ul.nav").attr('id', 'node').find('a').each(function(index, el) {
this.href = newLink[index];
});
理想情况下,您应该已经在<ul>
标记上拥有ID。
答案 1 :(得分:1)
只需使用attr
[docs]:
$('ul.nav > li').slice(0,3).children('a:first-child').attr('href', function(i) {
return newLink[i];
});
我也尝试使用与纯JavaScript相同的方式选择元素,即前三个列表条目和第一个a
元素。
也就是说,如果您的数组包含与菜单中a
个元素一样多的新链接,那么您可以将选择简化为:
$('ul.nav a').attr('href', /*...*/);
答案 2 :(得分:1)
这将找到catNav节点下的所有链接(您已经拥有该节点),并为每个节点分配新的href。
catNav.find('a').each(function(index) { $(this).attr('href', newLink[index]); })
答案 3 :(得分:0)
那将是:
for(var i=0; i<3; i++){
$(node, ':nth-child(' + i + ')').children().first().attr('href', newLink[i]);
}
答案 4 :(得分:0)
在这里:http://jsfiddle.net/HFj2D/2/
$.each($("#node").find("a"), function(i, link){
$(link).attr("a", newLink[i]);
});
答案 5 :(得分:0)
$(node).find('li a').each(function() {
$(this).attr('href', 'newlink');
});