我希望向我的所有元素添加一个新属性,它们的type
是text
。
你能告诉我我哪里错了吗?
首先,我将其类型为文本的所有元素标识为如下(输入标记名是包含文本类型的标记名称)
var inputs = document.getElementsByTagName('input');
其次,我将我的属性添加到文本类型的属性中。
if (inputs.type =='text') {var att = document.createAttribute("class")}
然后,当我想检查是否添加了新属性时
inputs.hasAttribute("class");
我犯了这个错误
Uncaught : inputs.hasAttribute不是函数
发布于 2017-11-08 00:42:16
document.getElementsByTagName('input');
返回一个类似list的数组,而不是一个元素。因此,你应该这样做:
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");
});
发布于 2017-11-08 00:56:53
试试这个:
var inputs = document.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++){
if(inputs[i].type == 'text'){
var att = document.createAttribute("class");
att.value = "testClass";
inputs[i].setAttributeNode(att);
console.log(inputs[i].hasAttribute("class"));
}
}
<input type="text"/>
<input type="text"/>
https://stackoverflow.com/questions/47169717
复制相似问题