document.getElementsByTagName不起作用

时间:2016-02-26 21:10:39

标签: javascript tags

我想使用document.getElementsByTagName('input') 为输入列表设置所需(或取消设置)。 有可能吗?

我试过了:

document.getElementsByTagName('input').required = false;

或(用于其他目的)

document.getElementsByTagName('input').value = ""

但它似乎不起作用。

此外:是否可以捕获某种类型的输入(即文本或广播)?

谢谢!!! ObOnKen

3 个答案:

答案 0 :(得分:2)

getElementsByTagName()返回元素集合,因此您需要遍历集合...

var elements = document.getElementsByTagName('input');

for(var i = 0; i < elements.length; i++)
{
    if(elements[i].type == "text")
    {
        elements[i].value = "";
    }
}

答案 1 :(得分:1)

getElementsByTagName()返回实时HTMLCollection。如果您想对返回的每个项目执行某些操作,则必须明确地迭代它们:

var inputs = table.getElementsByTagName('input'); 
for (var i = 0; i < inputs.length; i++) { 
    inputs[i].required = false;
}

但是,如果使用某些库,您可以使用您期望的语法对集合的每个内容(或者,如某些库称之为选择)进行操作。

答案 2 :(得分:0)

您应该使用for循环来迭代所有input,因为document.getElementsByTagName会返回带有给定标记名称的HTMLCollection个元素。

var values = document.getElementsByTagName('input');
for (var i = 0; i < values.length; i++) {
    values[i].required = false;
}

要捕获某种类型的输入:

var textInput = document.querySelector("input[type=text]");

querySelector返回文档中的第一个元素。