2017-09-26 116 views
0

添加特定類後,我在索引元素時遇到問題。我不需要從ul的第一個元素進行索引,而是從裏面的類激活。可能嗎?添加類後獲取元素索引

function setdataindex() { 
 
    $('.ul li').removeAttr('data-index'); 
 
    $('.ul li.activated').each(function() { 
 
    var index = $(this).index(); 
 
    $(this).find('span').html(index); 
 
    }); 
 
} 
 
setdataindex(); 
 

 
$('form').on('change', function() { 
 
    var nodeActive = $(this).find('input:checked').attr('id'); 
 
    $('.ul li').removeClass('activated'); 
 
    $('.ul li span').empty(); 
 
    $('.ul').find('[data-node="' + nodeActive + '"]').addClass('activated'); 
 
    setdataindex(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form> 
 
    <p><input id="nd1" type="radio" name="node" value="node1">Node1 </p> 
 
    <p><input id="nd2" type="radio" name="node" value="node2">Node2 </p> 
 
</form> 
 

 
<ul class="ul"> 
 
    <li data-node="nd1">Test <span></span></li> 
 
    <li class="activated" data-node="nd2">Test <span></span></li> 
 
    <li data-node="nd1">Test <span></span></li> 
 
    <li data-node="nd1">Test <span></span></li> 
 
    <li data-node="nd2">Test <span></span></li> 
 
</ul>

+2

請更articulative ..什麼是預期的輸出否則人們將不會花費多少時間?你的問題 – user1428716

回答

1

的jQuery的foreach方法通指數和值回調:

function setdataindex() { 
    $('.ul li').removeAttr('data-index'); 
    $('.ul li.activated').each(function(index) { 
    $(this).find('span').html(index); 
    }); 
}