向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");
});