Javascript DOM:按类型精确定位“输入”元素?

时间:2011-05-08 00:31:36

标签: javascript dom

我需要从表中查找和操作<input type="checkbox">。目前我有一个非常简单的功能:

function testAjaxCheckBoxes() {
    var table = document.getElementById("ajax_output");
    var nodeList = table.getElementsByTagName("input");
}

这就是我现在所知道的。我有nodeList所有<input>标签的{{1}}对象,但我不知道如何检查每个标签的类型或属性。

我想更普遍的问题是如何通过DOM查看和操作任何类型的属性?

4 个答案:

答案 0 :(得分:4)

拥有元素后,您可以使用getAttributesetAttributeremoveAttribute方法来读取,写入和删除属性。

答案 1 :(得分:3)

如果你有足够的目标Firefox&gt; = 3.5和IE&gt; = 8,你可以使用

document.querySelectorAll("input[type=file]")

根据需要获取DOM元素数组。 See more at the MDC documentation.

答案 2 :(得分:2)

.getAttribute(attr);

所以,如果你想检查nodeList中的每个项目,看看它是否是一个文件上传...

  var nodeList = document.getElementsByTagName("input");
for(item in nodeList) {
    if(nodeList[item].getAttribute("type") == "file") {
     alert("i'm a file");   
    }
    else {
     alert(nodeList[item].getAttribute("type"));
    }
};

答案 3 :(得分:0)

如果你在哪里使用库(你应该)像JQuery / Mootools等 它看起来像那样

var inputs=$('#ajax_output input[type=checkbox]');

OR

var inputs=$('ajax_output').getElements('input[type=checkbox]');`