我在输入/更新按类名获取的元素的值时遇到问题。
这是我的代码:
index.html
:
<dl>
<dt class="dt-messages-number">total</dt>
<dd class="dd-messages"></dd>
...
</dl>
main.js
:
...
var parsedRes = JSON.parse(res);
console.log(res.messages); //prints undefined
console.log(parsedRes.messages); //prints 23 ,okay
document.getElementsByClassName('dd-messages')[0].value = '7'; //not working
document.getElementsByClassName('dd-messages')[0].value = 7; //not working
document.getElementsByClassName('dd-messages')[0].value =parsedRes.messages; //not working
最后三个代码行不起作用,它不会更新描述元素dd-messages
的值。有没有人知道为什么会这样?
答案 0 :(得分:2)
答案 1 :(得分:1)
使用.innerText
或innerHTML
代替
document.getElementsByClassName('dd-messages')[0].innerText = '7';
<dl>
<dt class="dt-messages-number">total</dt>
<dd class="dd-messages"></dd>
</dl>
.value
,.innetText
和innerHTML
之间的差异请参考this。
答案 2 :(得分:1)
如上所述,此类DOM元素没有value
属性。
您可以使用innerHTML
或innerText
。
如果你知道你的价值是安全的并且包含安全的html,你可以使用 innerHTML ,
否则你应该使用 innerText 。
e = <your element by class name>;
e.innerText = e.textContent = "your text"; <-- does not render html--/>
答案 3 :(得分:0)
document.getElementsByClassName('dd-messages')[0].innerHTML = "Hello world"
// OR you can Also Use
var dd = document.getElementsByClassName('dd-messages');
console.log(dd.ClassName = "Hello World")
&#13;
<dl>
<dt class="dt-messages-number">total</dt>
<dd class="dd-messages"></dd>
...
</dl>
&#13;