Xtr*_*eme 2 javascript php arrays undefined
我在php中有一个for循环,在我的页面上添加了一些看起来像这样的复选框
<input type="checkbox" name="checkbox[]">
Run Code Online (Sandbox Code Playgroud)
我想使用javascript来检查哪个被检查并在数组中添加值
var cboxes = document.getElementsByName('checkbox[]');
var len = cboxes.length;
var imageArray = new Array();
for (var i = 0; i < len; i++) {
if (cboxes[i].checked) {
imageArray[i] = cboxes[i].value;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我有50个盒子并单击复选框号2,4和6,循环遍历我的阵列,我得到结果.
for(var i = 0; i < imageArray.length; i++){
gallery.innerHTML += imageArray[i] + "<br>";
}
Run Code Online (Sandbox Code Playgroud)
-
undefined
Correct value
undefined
Correct value
undefined
Correct value
Run Code Online (Sandbox Code Playgroud)
如果我检查数字1,2,3我得到结果
Correct value
Correct value
Correct value
Run Code Online (Sandbox Code Playgroud)
当我跳过复选框时,为什么我会得到未定义?我如何解决它
这是因为您要向数组添加额外的元素.以此代码为例:
var a = []; // empty array
a[1] = 'foo'; // don't set a[0]
console.log(a.length); // gives 2
Run Code Online (Sandbox Code Playgroud)
Javascript将始终"填写"数组键列表中的空白.如果你错过了一些,Javascript将填补空白undefined.
而不是通过键名称将元素添加到您的数组,而只是push它到数组的末尾:
imageArray.push(cboxes[i].value);
Run Code Online (Sandbox Code Playgroud)