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 回答