[英]jquery each function and array show undefined in a for loop
这是我的问题的HTML部分
<DIV ID="CONTAINER">
<DIV CLASS="ITEMS">
Purchase
</DIV>
<DIV CLASS="ITEMS">
Return
</DIV>
<DIV CLASS="ITEMS">
On Hold
</DIV>
<DIV CLASS="ITEMS">
Exchange
</DIV>
</DIV>
jQuery的
var MyArray = [];
var $Items = $('.ITEMS');
$Items.each(
function(){
Value = $.trim($(this).html());
MyArray.push(Value);
}
);
var Count_Parts = MyArray.length;
for (i = 1; i <= Count_Parts; i++ ){
console.log(MyArray[i]);
}
我的问题是控制台无法显示正确的结果,我看到退货,保留,交换,未定义.....它正在跳过购买并显示未定义? 为什么未定义购买?
您的代码大部分是正确的,它将所有项目的正确值推入数组。 您正在使用的for循环未按预期进行迭代。 如果您看这行:
for (i = 1; i <= Count_Parts; i++ ){
您从数字1开始循环,并要求它在小于或等于Count_Parts(即4)时停止循环。 现在,当您访问数组中的元素时,您正在访问元素1,2,3,4。 但是,该数组从0开始,并且元素存储在0、1、2、3。
正确的实现是:
for (i = 0; i < Count_Parts; i++ ){
这将从0开始循环,并且仅在我小于计数时运行。 因此它将访问0、1、2、3,这是存储所有元素的数组。
您的代码中包含更正的完整部分是:
var MyArray = [];
var $Items = $('.ITEMS');
$Items.each(
function(){
Value = $.trim($(this).html());
MyArray.push(Value);
}
);
var Count_Parts = MyArray.length;
for (i = 0; i < Count_Parts; i++ ){
console.log(MyArray[i]);
}
JsFiddle: http : //jsfiddle.net/MQBnW/
数组索引从0 ...(length -1)开始
var Count_Parts = MyArray.length;
for (i = 0; i < Count_Parts; i++ ){
console.log(MyArray[i]);
}
演示: 小提琴
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.