0

こんにちは私はループしている現在の要素の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を取得できません。

4

3 に答える 3

3

arr[i]は要素であり、jQueryオブジェクトではありません。idあなたは直接プロパティにアクセスすることができますarr[i].id

于 2012-07-10T17:13:22.177 に答える
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関数です。同等のJavaScriptは.idです

また、ifステートメントに関係なく割り当てるため、キー変数の割り当てをifステートメントの外に移動できます。

于 2012-07-10T17:15:15.030 に答える
-1

ノードで.idを使用することはお勧めしません。.getAttributeを使用します。

于 2012-07-10T17:20:47.023 に答える