Javascript 是否可以更改dom元素属性类型?(数字、字符串等)

Javascript 是否可以更改dom元素属性类型?(数字、字符串等),javascript,dom,properties,Javascript,Dom,Properties,考虑一个输入字段 <input type="number" id="output" disabled="true"> 我对它进行了测试,但没有任何效果(+=运算符仍然包含字符串)。有没有办法更改dom元素属性的变量类型 队伍里到底发生了什么 Document.getElementById("output").value = Number(0); 为什么它对类型没有影响 这是否仅适用于Dom对象,或者这种不变性是否也适用于其他情况(或者我是否可以主动为变量定义它) PS:我知道我可

考虑一个输入字段

<input type="number" id="output" disabled="true">
我对它进行了测试,但没有任何效果(+=运算符仍然包含字符串)。有没有办法更改dom元素属性的变量类型

队伍里到底发生了什么

Document.getElementById("output").value = Number(0);
为什么它对类型没有影响

这是否仅适用于Dom对象,或者这种不变性是否也适用于其他情况(或者我是否可以主动为变量定义它)


PS:我知道我可以简单地使用一个临时变量来避免这样的问题,但是我想知道为什么DOM属性不受
output.value=Number(0)的影响

应该使用元素的setAttribute函数,而不是直接为DOM元素属性赋值

var output = Document.getElementById("output");
output.setAttribute('value',Number(0));
为什么它对类型没有影响

DOM元素的属性是HTML的一部分,并且由于HTML结构,所有属性值都应该被引用(),因此对于为属性设置的任何值,它都将被存储为字符串

这意味着,即使您在结尾明确地为atribute“value”指定了值编号(0),它也将存储在HTML结构中,如下所示:

<input type="number" id="output" disabled="true" value="0"/>
HTML:


<input type="number" id="output" disabled="true" value="0"/>
//setting a custom attribute the value: {a:10}
document.getElementById('output').setAttribute('myattr',{a:10})
<input type="number" id="output" disabled="true" myattr="[object Object]">