javascript document.getElementsByTagName不工作

ozxc1zmp  于 2023-05-12  发布在  Java
关注(0)|答案(4)|浏览(106)

我想使用document.getElementsByTagName('input')来根据需要设置(或取消设置)输入列表。可能吗?
我试过了

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

或(用于不同目的)

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

但好像不管用
此外:是否可以捕获某种类型的输入(即文字或收音机)?
谢谢你!奥博恩肯

z9zf31ra

z9zf31ra1#

getElementsByTagName()返回一个元素的集合,所以你需要迭代这个集合...

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

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

enyaitl32#

getElementsByTagName()返回活动HTMLCollection。如果你想对每个返回的项做些什么,你必须显式地遍历它们:

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

然而,如果你使用一些库,你可能能够用你所期望的语法对集合的每一个内容进行操作(或者,一些库称之为选择)。

qvtsj1bj

qvtsj1bj3#

您应该使用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返回文档中的第一个元素。

w80xi6nr

w80xi6nr4#

如果你的文档中有多个输入元素,那么你可以使用document.getElementByTagName:,因为你必须使用for循环来迭代多个元素。或者如果你只有一个元素,那么你可以使用queryselector,并给出Id/Classname,比如:如果你在element:document.querySelector(#idname);中有I'd或者在element: document.querySelector(#className);中有class
如果已经为元素指定了Id,也可以使用document.getElementById(idname);(如果只有一个元素)

相关问题