0
<ul class="newsct">
  <li><span class="listnum"></span><a href="#">test</a></li>
<li><span class="listnum"></span><a href="#">test</a></li>
<li><span class="listnum"></span><a href="#">test</a></li>
<li><span class="listnum"></span><a href="#">test</a></li>
<li><span class="listnum"></span><a href="#">test</a></li>
<li><span class="listnum"></span><a href="#">test</a></li>
<li><span class="listnum"></span><a href="#">test</a></li>

</ul>

我想写 3,4,5,6,7 到像这样<span class="listnum">3</span>

我使用以下代码,但它不起作用。

var len = $('.newsct li').length;
    for(var i=0;i<len;i++){
 if(i>=3){
        $('.newsct li .listnum').text()==i;
}
    }

谢谢你

4

5 回答 5

2

您的代码是错误的,因为 a)您将文本设置为$('.newsct li .listnum')在所有迭代中匹配的所有元素,而不仅仅是当前的,并且 b)您的使用.text()不正确。

这应该有效:

var len = $('.newsct li .listnum').each(function(i) {
    $(this).text(i+1); // add conditions as needed (note first item index is 0)
});
于 2012-12-13T07:29:17.503 回答
2
$('.newsct li .listnum').each(function(i,elem) {
    if (i>=3) $(elem).text(i);
});

或者

for(var i=0, len = $('.newsct li').length; i<len ;i++){
     if(i>=3) $('.newsct li .listnum').eq(i).text(i);
}
于 2012-12-13T07:30:49.853 回答
1

你必须设置文本:

var indexStart = 3;
$('.newsct li .listnum:gt('+indexStart +')').each(function(i) {
    $(this).text(indexStart + i);
});

演示:http: //jsfiddle.net/PyxP5/

如果你只使用 text() 你会得到文本。

于 2012-12-13T07:29:33.440 回答
0

$('.newsct li .listnum') 将选择所有元素,我们需要指定特定元素,因此使用 get() 并需要使用 text 方法设置文本

var len = $('.newsct li').length; for(var i=0;i=3){ $('.newsct li .listnum').get(i).text(i); } }

于 2012-12-13T07:30:35.370 回答
0

使用下面的代码。应该工作

for(var i=0, len = $('.newsct li').length; i<len ;i++){      if(i>=3) $('.newsct li .listnum').eq(i).text(i); }
于 2012-12-13T07:35:29.710 回答