我不需要.index()
值。
EG。当我有一个像这样的清单:
<ul>
<li class="alpha"></li>
<li class="alpha"></li>
<li class="alpha"></li>
<li class="beta"></li>
<li class="alpha"></li>
<li class="beta"></li>
<li class="beta"></li>
<li class="alpha"></li>
<li class="beta"></li>
<li class="beta"></li>
</ul>
我需要获取每个类的订单号,并忽略索引计数列表中的另一个类,所以我需要一些像这样工作的东西:
jQuery('ul li').not('.beta').each(function(){
jQuery(this).text(get nth-child(THIS NUMBER) here);
});
然后结果就像
<ul>
<li class="alpha">1</li>
<li class="alpha">2</li>
<li class="alpha">3</li>
<li class="beta"></li>
<li class="alpha">4</li>
<li class="beta"></li>
<li class="beta"></li>
<li class="alpha">5</li>
<li class="beta"></li>
<li class="beta"></li>
</ul>
我可以和其他班级一样,如:
jQuery('ul li').not('.alpha').each(function(){
jQuery(this).text(get nth-child(THIS NUMBER) here);
});
这是结果
<ul>
<li class="alpha"></li>
<li class="alpha"></li>
<li class="alpha"></li>
<li class="beta">1</li>
<li class="alpha"></li>
<li class="beta">2</li>
<li class="beta">3</li>
<li class="alpha"></li>
<li class="beta">4</li>
<li class="beta">5</li>
</ul>
请建议
答案 0 :(得分:4)
each()
函数的索引值为:https://api.jquery.com/jQuery.each/
jQuery('ul li').not('.beta').each(function(index){
var count = index + 1;
jQuery(this).text(count);
});
答案 1 :(得分:2)
只需使用:
jQuery('ul li').not('.beta').text(function(i){
return i+1;
})
您可以将功能传递给.text()
。在该函数中,第一个参数是堆栈中元素的索引。由于它基于0索引,因此在返回之前需要加1!
这里有一个小提琴:http://jsfiddle.net/wqLXA/1/
此外,您可以直接使用.not
或$(.alpha)
,而不是$('.beta')
。这将加速这一进程。
答案 2 :(得分:0)
因为每个都提供了一个索引,您可以添加一个索引来获取第n个孩子的数字 -
jQuery('ul li').not('.beta').each(function(index){
var nth = index + 1; // because of zero based indexes
jQuery(this).text(nth);
});
答案 3 :(得分:0)
如果你想对同一个函数使用不同的计数但是对于不同的类(在你的示例中同时基本上是beta和alpha的单独计数),试试这个:
jQuery('ul li').each(function(){
var $current = jQuery(this);
$current.text((jQuery('ul li.' + $current.attr('class')).index($current) + 1));
});
这会给你一个结果:
<ul>
<li class="alpha">1</li>
<li class="alpha">2</li>
<li class="alpha">3</li>
<li class="beta">1</li>
<li class="alpha">4</li>
<li class="beta">2</li>
<li class="beta">3</li>
<li class="alpha">5</li>
<li class="beta">4</li>
<li class="beta">5</li>
</ul>
<强> JSFiddle Demo 强>
答案 4 :(得分:0)
var index=1;
$('ul li').not('.alpha').each(function(){
$(this).text(index);
index=index+1;
});