这是我的问题的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]);
}
我的问题是控制台没有显示正确的结果我看到Return,On Hold,Exchange,undefined ..... 它正在跳过购买并显示undefined而不是? 为什么购买未定义?
答案 0 :(得分:1)
您的代码大部分都是正确的,它将所有项目的正确值推送到数组中。 您正在使用的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并且仅在i小于计数时运行。所以它将访问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/
答案 1 :(得分:0)
数组索引从0开始...(长度-1)
var Count_Parts = MyArray.length;
for (i = 0; i < Count_Parts; i++ ){
console.log(MyArray[i]);
}
演示:Fiddle