[英]getElementsByName won't loop through entire array
按下按鈕即可執行以下代碼。 它可以很好地警告getElementsByName數組的一個字符串,但是當引入循環時,它仍然僅警告第一個字符串值,僅此而已:
function checkvals() {
var input = document.getElementsByName('ModuleTitle', 'ModuleCode', 'BuildingName', 'Day');
var i = 0;
for (i = 0; i <= input.length; i++){
alert(input[i].value);
}
}
那是因為getElementsByName
只接受一個參數,所以它只獲取第一個名字。
你可以像這樣構建一個完整的集合......
var names = ['ModuleTitle', 'ModuleCode', 'BuildingName', 'Day'];
var input = [];
for(var i = 0; i < names.length; i++) {
var name_els = document.getElementsByName(names[i]);
for(var j = 0; j < name_els.length; j++) {
input.push(name_els[j]);
}
}
然后遍歷input
數組, (或者只是在內部循環中完成工作) 。
此外,您還有一個錯誤。
這個...
for (i = 0; i <= input.length; i++){
應該是這個...
for (i = 0; i < input.length; i++){
...否則,你會超過最后一個索引。
這是因為getElementsByName
只需要一個 name
的說法,並為他們的那個值返回的所有元素name
屬性。 (請參閱https://developer.mozilla.org/en/DOM/document.getElementsByName 。)如果要查找多個name
,則必須多次調用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.