我想从父节点后代层次结构中获取类名div.one
的index()值。这里div#mydiv
是我的父母后裔。
我的预期结果应该是在控制台中:0,1,2,3,4,5。
JS:
$('#mydiv .one').each(function () {
console.log($(this).index()); // Here Result is 0,1,2,0,1,2 ,but I want 0,1,2,3,4,5
});
HTML:
<div id="mydiv">
<div class="div-demo">
<div class="one" >
Demo 1
</div>
<div class="one" >
Demo 2
</div>
<div class="one" >
Demo 3
</div>
</div>
<div class="div-demo">
<div class="one" >
Demo 4
</div>
<div class="one" >
Demo 5
</div>
<div class="one" >
Demo 6
</div>
</div>
</div>
小提琴链接:https://jsfiddle.net/gzdh87y2/
提前感谢。
答案 0 :(得分:4)
index()
的变体将根据其兄弟姐妹返回元素的索引。
您可以缓存one
并使用它来获取元素集中元素的索引
var $ones = $('#mydiv .one');
$ones.each(function() {
console.log($ones.index(this)); // Here Result is 0,1,2,0,1,2 ,but I want 0,1,2,3,4,5
});
或使用each()
回调
$('#mydiv .one').each(function(idx) {
snippet.log(idx); // Here Result is 0,1,2,0,1,2 ,but I want 0,1,2,3,4,5
});
&#13;
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv">
<div class="div-demo">
<div class="one">
Demo 1
</div>
<div class="one">
Demo 2
</div>
<div class="one">
Demo 3
</div>
</div>
<div class="div-demo">
<div class="one">
Demo 4
</div>
<div class="one">
Demo 5
</div>
<div class="one">
Demo 6
</div>
</div>
</div>
&#13;
答案 1 :(得分:3)
您需要为index()
提供一个选择器,以限制其搜索的元素。试试这个:
$('#mydiv .one').each(function () {
console.log($(this).index('.one'));
});
答案 2 :(得分:2)
尝试通过传递.index()
对象来调用元素集合上的this
,
var cache = $('#mydiv .one');
cache.each(function () {
console.log(cache.index(this));
});
答案 3 :(得分:0)
使用eq()函数并替换index()。 例如:
$('#mydiv .one').each(function () {console.log($(this).eq());});