如何从1开始jQuery $.each()
索引而不是0?
我正在使用.each函数来填充选择框。所以在这里我想在1中的选择框中填充选项。所以根据条件我想在第一个索引中添加选项,即0.
答案 0 :(得分:9)
所以试试
$.each(obj, function(i, elem) {
if (i === 0) return;
// do stuff
});
或者重写你的代码,因此它的索引和数据从0开始.JavaScript基于0而不是1基于Matlab和其他一些语言。
答案 1 :(得分:5)
你做不到。为什么不在函数var myIndex = index + 1;
的第一行声明另一个变量?
答案 2 :(得分:2)
不可能。 jQuery.each
遍历对象(数组)。对于真实对象,它使用for in
循环。顺便说一句,Objectpropertys根本就没有保证索引。
对于Arrays,它使用标准for loop
,但您无权访问起始索引。
你最好的镜头就是跳过第一个元素。
$.each(obj, function(index, elem) {
if( index === 0 )
return true;
// code
});
答案 3 :(得分:2)
您可以通过简单地将该数字添加到当前循环设置索引值中来从任何给定的起始值开始。
$.each(( index ) => {
index += 1 //or any other starting value
// your code
});
答案 4 :(得分:0)
在下面的评论中看到澄清要点,jQuery.each
或其中的一些变体根本不是正确的工具。使用for循环,并将1添加到索引以输出<option>
的值。
使用.prepend
插入option
作为select
的第一个孩子:
for (var i = 0; i < 10; i++) {
$('select').prepend('<option>' + (i + 1) + '</option>');
}
答案 5 :(得分:0)
这就是我所做的:
var start = index + 1;
这只是将当前索引加1 ..然后使用该新变量而不是'index'。
答案 6 :(得分:0)
var data = [42, 1337];
$.each(data, function(i) {
i++;
console.log(i);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 7 :(得分:-2)
$('.article_number').each(function(index) {
index=index+1;
$(this).text(index);
});
每次从索引开始,每次都从0开始,并为文本添加一个。
所以0将在文本中变为1。 1将在文本中变为2,依此类推。
这不会中断行中的最后一项,因为它只会更改不在每个函数上的文本索引。
希望这就是你的意思。