首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在JavaScript中向特定元素添加属性

在JavaScript中向特定元素添加属性
EN

Stack Overflow用户
提问于 2017-11-08 00:38:16
回答 2查看 45关注 0票数 0

我希望向我的所有元素添加一个新属性,它们的typetext

你能告诉我我哪里错了吗?

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

代码语言:javascript
运行
复制
 var inputs = document.getElementsByTagName('input');

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

代码语言:javascript
运行
复制
if (inputs.type =='text') {var att = document.createAttribute("class")}

然后,当我想检查是否添加了新属性时

代码语言:javascript
运行
复制
inputs.hasAttribute("class");

我犯了这个错误

Uncaught : inputs.hasAttribute不是函数

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-08 00:42:16

代码语言:javascript
运行
复制
document.getElementsByTagName('input');

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

代码语言:javascript
运行
复制
var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++){
    if(inputs[i].type == 'text'){
        inputs[i].classList.add("some", "class");
    }
}

更好的办法是:

代码语言:javascript
运行
复制
// Only works in recent browsers
document.querySelectorAll("input[type=text]").forEach(function(ele){
    ele.classList.add("some", "class");
});
票数 2
EN

Stack Overflow用户

发布于 2017-11-08 00:56:53

试试这个:

代码语言:javascript
运行
复制
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"));
    }
}
代码语言:javascript
运行
复制
<input type="text"/>
<input type="text"/>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47169717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档