GetElementsByClassName(' ..')[0] .value =''不起作用

时间:2017-09-01 11:00:30

标签: javascript html

我在输入/更新按类名获取的元素的值时遇到问题。

这是我的代码:

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的值。有没有人知道为什么会这样?

4 个答案:

答案 0 :(得分:2)

您想使用.innerHTML代替.value

.value是用于输入的方法,<tags></tags>内的文字使用.innerHTML

文档:.innerHTML

答案 1 :(得分:1)

使用.innerTextinnerHTML代替

document.getElementsByClassName('dd-messages')[0].innerText = '7';  
<dl>
   <dt class="dt-messages-number">total</dt>
   <dd class="dd-messages"></dd>
</dl>

.value.innetTextinnerHTML之间的差异请参考this

答案 2 :(得分:1)

如上所述,此类DOM元素没有value属性。

您可以使用innerHTMLinnerText。 如果你知道你的价值是安全的并且包含安全的html,你可以使用 innerHTML , 否则你应该使用 innerText

e = <your element by class name>;
e.innerText = e.textContent = "your text"; <-- does not render html--/>

答案 3 :(得分:0)

&#13;
&#13;
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;
&#13;
&#13;