更改元素的attr()存在于具有相同索引的不同div中

时间:2013-07-26 10:26:30

标签: jquery

我正在尝试更改另一个div元素中元素的href,其中两个元素都具有相同的索引或nth-child编号,如:

我想将.nav-tabs a href替换为.tab-content .tab-pane s id,其中两个索引号都相同,

但我的代码仅适用于第一个锚点,而i始终返回0:

 var i = 0;
 jQuery('#pane').each(function () {
     var p = jQuery(this).attr('id', 'pane-' + randomNumber());
     alert(i);
     jQuery(this).closest('.tab-content').prev().children('ul.nav-tabs li')
         .eq(i).find('a').attr('href', '#' + p.attr('id'));
     i++;
 });

HTML

<div class="tabbable" id="tabs">
    <ul class="nav nav-tabs">
        <li class="active">
            <a href="#tab1" data-toggle="tab">Tab1</a>
        </li>
        <li>
            <a href="#tab2" data-toggle="tab">Tab2</a>
        </li>
    </ul>
    <div class="tab-content">
        <div class="tab-pane active" id="pane">

        </div>
        <div class="tab-pane" id="pane">

        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

$(function()
{
    var tab_lis = $('.nav-tabs li');
    var serial = 0;

    $('.tab-content>div').each(function ()
    {
      var div = $(this);
      var id = 'd' + (++serial);
      div.attr('id', id);

      var li = tab_lis.eq(div.index());
      var a = li.find('a');

      a.attr('href', '#' + id);
    });
});

http://jsfiddle.net/RNmYV/1/