我尝试使用jQuery将子导航元素关系返回给它的兄弟,然后使用代表其顺序的数字向每个兄弟添加数据属性。
因此,如果有兄弟姐妹,第三个兄弟姐妹有数据链接=" 3"。
导航链接的顺序由用户在CMS中确定。
我目前的HTML结构是:
<nav>
<a class="season-nav-link" href="#">1</a>
<a class="season-nav-link" href="#">2</a>
<a class="season-nav-link" href="#">3</a>
<a class="season-nav-link" href="#">4</a>
</nav>
我的JS是:
$(function(){
var ordernum = ($("nav.season-slider-nav a").index()+1);
var orderlink = $("a.season-nav-link");
$(orderlink).attr('data-info', ordernum);
});
目前在每个链接中返回带有data属性的值,但每个链接的值为&#34; 1&#34;。
答案 0 :(得分:2)
您可能希望迭代所有兄弟姐妹并填写值列表。
然后迭代第二个选择器结果并相应地填充
伪示例:
$(function(){
var ordernum = [];
$("nav.season-slider-nav a").each(function(index, element){
ordernum.push(index+1);
});
$("a.season-nav-link").each(function(index, element){
$(element).attr('data-info', ordernum[index]);
});
});
答案 1 :(得分:1)
请使用'each'来访问每个元素,因为索引可以从'each'本身获得,你可以写:
$(function(){
$("nav a").each(function(index, elem) {
$(elem).attr('data-info', index + 1);
});
});