2012-07-10 114 views
0

嗨,我一直在試圖獲得當前元素的id,我正在循環但我不知道爲什麼這不起作用任何幫助,非常感謝!如何獲取當前htmlSelectElements ID

代碼:

var arr = document.getElementsByClassName("myclass"); 
for (i = 0; i < arr.length; i++) { 
    var key = ""; 
    var value = ""; 
    if (arr[i].nodeName == "INPUT" || arr[i].nodeName == "TEXTAREA") { 
     key = arr[i].name; 
     value = arr[i].value; 
    } 
    else if (arr[i].nodeName == "SELECT" && arr[i].attr('id') == "multiple") { 
     alert("worked"); 
     key = arr[i].name; 
     value = "multi"; 
    } 
    else if (arr[i].nodeName == "SELECT" && arr[i].attr('id') != "multiple") { 
     alert("ddint work"); 
     key = arr[i].name; 
     value = "not multi"; 
    } 
}​ 

我無法從我的ARR [I]即使它是一個元素位置獲得ID。

+0

不只是檢查'id'屬性? – 2012-07-10 17:10:48

+1

爲什麼標記jQuery? – j08691 2012-07-10 17:11:45

+0

你是什麼意思我檢查id屬性? – arrowill12 2012-07-10 17:12:12

回答

3

arr[i]是一個元素,而不是一個jQuery對象。您可以直接與arr[i].id

1
var arr = document.getElementsByClassName("myclass"); 
for (i = 0; i < arr.length; i++) { 
    var key = ""; 
    var value = ""; 
    if (arr[i].nodeName == "INPUT" || arr[i].nodeName == "TEXTAREA") { 
     value = arr[i].value; 
    } 
    else if (arr[i].nodeName == "SELECT" && arr[i].id == "multiple") { 
     alert("worked"); 
     value = "multi"; 
    } 
    else if (arr[i].nodeName == "SELECT" && arr[i].id != "multiple") { 
     alert("ddint work"); 
     value = "not multi"; 
    } 
    key = arr[i].name; 
}​ 

.attr( 「ID」)是一個jQuery函數訪問id屬性。 javascript相當於.id

此外,您可以將if語句之外的關鍵變量賦值移到if語句之外,因爲不管if語句如何賦值。

-1

不建議在節點上使用.id。使用.getAttribute。