获取父LI的索引并指定为<a> href with jquery</a>

时间:2012-02-27 16:25:53

标签: jquery tabs indexing parent

我正在尝试获取父li的索引并将其指定为我的锚标记中的href的一部分。现在,我得到的是我所有锚点的href =“#tab-1”而不是#tab-1,#tab-2等。 这是我的代码:

<script type="text/javascript">
$(function(){
    $('.jqueryTabs ul li a').attr("href", "#tab" + $(this).parent().index());
});
</script>
<div class="jqueryTabs">

 <ul>
  <li><a href="#">Overview</a></li>
  <li><a href="#">Details</a></li>
  <li><a href="#">Downloads</a></li>
  <li><a href="#">Video</a></li>
  <li><a href="#">Contact Us</a></li>
 </ul>

 <div id="">
 </div>
 <div id="">
 </div>
 <div id="">
 </div>
 <div id="">
 </div>
 <div id="">
 </div>

</div><!-- jqueryTabs -->

3 个答案:

答案 0 :(得分:1)

你可以做到

$(function(){
     $('.jqueryTabs ul li a').each(function(){
         $(this).attr("href", "#tab" + $(this).parent().index());
     });
});

答案 1 :(得分:1)

您应该遍历锚点,并为每个锚点获取父LI的索引:

$(function(){
    $('.jqueryTabs ul li a').each(function() {
        $(this).attr("href", "#tab" + ($(this).parent().index() + 1));
    });
});

注意:我已添加“+ 1”以获取“tab1”,“tab2”... index()从零开始

<强> DEMO

答案 2 :(得分:1)

您需要遍历每个选定的a,并获取每个a个父级的值,否则全部获得相同的值。

请改为尝试:

$(function(){
    $('.jqueryTabs ul li a').each(function(i, elm) {
       $(this).attr("href", "#tab" + $(this).parent().index());
    });
});