2017-04-18 46 views
-4

我想指望页面上的元素,但我需要的数字,从0开始,而不是1jQuery计数元素从0开始?

我知道我可以简单地做var tadada = $('.clickableDiv').length;

但是这将从1返回的数字。

这可能使用jQuery或JavaScript?

+2

那么'var tadada = $('。clickableDiv')。length - 1;'? –

+2

目前尚不清楚你想要做什么。如果页面上有一个元素,“length”为1是有意义的。否则,你无法表达页面上没有匹配元素('length = 0')的事实。 –

+0

从0开始计数,0意味着1没有意义? – Liam

回答

5

目前尚不清楚你想要做什么。如果页面上有一个元素,则length为1是有意义的。否则,您无法表达页面上没有匹配元素的事实(length = 0)。

如果您意味着你试图找到自己的索引,那么你会从0通过length - 1算了算,通常使用< length作为循环条件。例如: -

var foos = $(".foo"); 
 
for (var n = 0; n < foos.length; ++n) { 
 
    console.log("#" + n + " is '" + foos.eq(n).text() + "'"); 
 
}
<div class="foo">First</div> 
 
<div>(not foo)</div> 
 
<div class="foo">Second</div> 
 
<div>(not foo)</div> 
 
<div class="foo">Third</div> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

但是你不想length0时,有一个元素。这没有意义。

当然,如果你想在一个列表或东西供人食用的输出数字,将1加到索引显示目的通常的做法是:

var foos = $(".foo"); 
 
for (var n = 0; n < foos.length; ++n) { 
 
    console.log((n + 1) + ": '" + foos.eq(n).text() + "'"); 
 
    // Adding 1 ^^^^^^^ for display purposes only 
 
}
<div class="foo">First</div> 
 
<div>(not foo)</div> 
 
<div class="foo">Second</div> 
 
<div>(not foo)</div> 
 
<div class="foo">Third</div> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

1

这应该工作:

var tadada = $('.clickableDiv').length - 1; 
+2

'var tadada = $('。clickableDiv')。length;'它将提供具有相同类'clickableDiv'的元素的数量。所以如果有1个元素,那么你提供的代码将显示0,这会导致模糊性, –