Javascript Can';t将setAttributeNode应用于文本区域

Javascript Can';t将setAttributeNode应用于文本区域,javascript,jquery,html,textarea,Javascript,Jquery,Html,Textarea,有人能帮我吗?我想在textarea上执行类似操作以设置maxlength属性: <!DOCTYPE html> <html> <head> <style> .democlass { color: red; } </style> </head> <body> <h1>Hello World</h1> <p>Click the button to create a "

有人能帮我吗?我想在textarea上执行类似操作以设置maxlength属性:

<!DOCTYPE html>
<html>
<head>
<style>
.democlass {
    color: red;
}
</style>
</head>
<body>

<h1>Hello World</h1>

<p>Click the button to create a "class" attribute with the value "democlass" and insert it to the H1 element above.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction() {
    var h1 = document.getElementsByTagName("H1")[0];
    var att = document.createAttribute("class");
    att.value = "democlass";
    h1.setAttributeNode(att);
}
</script>

</body>
</html>

democlass先生{
颜色:红色;
}
你好,世界
单击按钮创建一个值为“democlass”的“class”属性,并将其插入到上面的H1元素中

试试看 函数myFunction(){ var h1=document.getElementsByTagName(“h1”)[0]; var att=document.createAttribute(“类”); att.value=“democlass”; h1.设置属性节点(att); }
我的代码是:

<!DOCTYPE html>
<html>
<head>
<style>
</head>
<body>

<textarea>Hello World</textarea>

<button onclick="myFunction()">change max length</button>

<script>
function myFunction() {
    var text = document.getElementsByTagName("textarea");
    var att = document.createAttribute("maxlength");
    att.value = "100";
    text.setAttributeNode(att);
}
</script>

</body>
</html>

你好,世界
更改最大长度
函数myFunction(){
var text=document.getElementsByTagName(“textarea”);
var att=document.createAttribute(“maxlength”);
att.value=“100”;
text.setAttributeNode(att);
}
如果我通过单击按钮运行脚本,控制台会显示:

未捕获的TypeError:h1.setAttribute不是函数

注:我是stackoverflow的新手:)

您有两个问题:

您必须处理元素而不是集合 比较(特别是每行的最后几个字符):

在第一种情况下,您试图处理文档中的第一个H1。在第二个示例中,您正在尝试收集所有TextArea

集合不是元素,也不具有元素所具有的所有方法

您必须处理存在的元素
第二组代码中没有文本区域。

首先,您忘记了文本区域:

<!DOCTYPE html>
<html>
<head>
    <style>
    </style>
</head>
<body>

<h1>Hello World</h1>

<button onclick="myFunction()">change max length</button>
<textarea></textarea>

<script>
    function myFunction() {
        var text = document.getElementsByTagName("textarea");
        var att = document.createAttribute("maxlength");
        att.value = "100";
        text[0].setAttributeNode(att);
    }
</script>

</body>
</html>

你好,世界
更改最大长度
函数myFunction(){
var text=document.getElementsByTagName(“textarea”);
var att=document.createAttribute(“maxlength”);
att.value=“100”;
文本[0]。setAttributeNode(att);
}

此外,document.getElementsByTagName还会返回一个数组,因此您会得到“h1.setAttribute不是函数。”错误。

您的代码中有一些错误。看看这个简化的:

你好,世界

更改最大长度 函数myFunction(){ var text=document.getElementsByTagName(“textarea”)[0]; setAttribute(“maxlength”,100); }
请不要忘记“标记为答案”并投票赞成:)谢谢!这不起作用!但我感谢你的回答@guvenckardas@Asjon-那么,这两个问题中只有第一个是您的问题。可能会重复
<!DOCTYPE html>
<html>
<head>
    <style>
    </style>
</head>
<body>

<h1>Hello World</h1>

<button onclick="myFunction()">change max length</button>
<textarea></textarea>

<script>
    function myFunction() {
        var text = document.getElementsByTagName("textarea");
        var att = document.createAttribute("maxlength");
        att.value = "100";
        text[0].setAttributeNode(att);
    }
</script>

</body>
</html>
<h1>Hello World</h1>

<textarea rows="10" cols="40"></textarea><br />
<button onclick="myFunction()">change max length</button>

<script>
    function myFunction() {
    var text = document.getElementsByTagName("textarea")[0];
    text.setAttribute("maxlength", 100);
}
</script>