向JavaScript中的特定元素添加属性

向JavaScript中的特定元素添加属性,javascript,Javascript,我希望为所有元素添加一个新属性,使其类型为文本 你能告诉我哪里错了吗 首先,我将所有类型为文本的元素标识如下(输入标记名是包含文本类型的标记名) 其次,我将我的属性添加到文本类型的属性中 if (inputs.type =='text') {var att = document.createAttribute("class")} 然后当我想检查是否添加了新属性时 inputs.hasAttribute("class"); 我犯了这个错误 未捕获的TypeError:inputs.hasAtt

我希望为所有元素添加一个新属性,使其
类型
文本

你能告诉我哪里错了吗

首先,我将所有类型为文本的元素标识如下(输入标记名是包含文本类型的标记名)

其次,我将我的属性添加到文本类型的属性中

if (inputs.type =='text') {var att = document.createAttribute("class")}
然后当我想检查是否添加了新属性时

inputs.hasAttribute("class");
我犯了这个错误

未捕获的TypeError:inputs.hasAttribute不是函数

返回类似数组的列表,而不是仅返回一个元素。因此,您应该这样做:

var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++){
    if(inputs[i].type == 'text'){
        inputs[i].classList.add("some", "class");
    }
}
返回类似数组的列表,而不是仅返回一个元素。因此,您应该这样做:

var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++){
    if(inputs[i].type == 'text'){
        inputs[i].classList.add("some", "class");
    }
}
试试这个:

var inputs=document.getElementsByTagName(“输入”);
对于(变量i=0;i

试试这个:

var inputs=document.getElementsByTagName(“输入”);
对于(变量i=0;i


谢谢您的回复。什么是一些
?在你的代码中。我如何测试它是否有效?因为我尝试了你的代码,我得到了相同的错误。
inputs[I].classList.add(“some”,“class”)
表示它正在将类名
some
class
添加到类列表中<代码>输入。hasAttribute(“类”)
将给您一个错误,因为正如我所说的
输入是一个列表,而不是一个元素。谢谢您的回复。什么是一些
?在你的代码中。我如何测试它是否有效?因为我尝试了你的代码,我得到了相同的错误。
inputs[I].classList.add(“some”,“class”)
表示它正在将类名
some
class
添加到类列表中<代码>输入。hasAttribute(“class”)将给您一个错误,因为正如我所说的
输入是一个列表,而不是一个元素。
var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++){
    if(inputs[i].type == 'text'){
        inputs[i].classList.add("some", "class");
    }
}
// Only works in recent browsers
document.querySelectorAll("input[type=text]").forEach(function(ele){
    ele.classList.add("some", "class");
});