簡體   English   中英

getElementsByName不會遍歷整個數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM