<div class="here_is_div">
<label class="a_label">
<input type="checkbox" name="checkbox">
Hello world
</label>
</div>
我认为textContent
只能更改TEXT
document.getElementsByTagName('label')[0].textContent = "Hello World is replaced"
然而,textContent
取代了包括复选框在内的所有内容。是否有更好的方法来更改文本而不执行以下操作:
document.getElementsByTagName('label')[0].innerHTML = '<input type="checkbox" name="checkbox">Hello world is replaced';
答案 0 :(得分:3)
您需要专门选择文本节点。
document.querySelector('label').childNodes[2].textContent = 'Hello World is replaced';
<div class="here_is_div">
<label class="a_label">
<input type="checkbox" name="checkbox">
Hello world
</label>
</div>
请注意,此处label
有3个子节点:label
和input
之间的空格和换行符,input
本身以及{{ 1}}和周围的空白。
答案 1 :(得分:0)
您可以将文字包装在 span 标记内:
document.querySelector('label span').textContent = 'Hello World is replaced';
<div class="here_is_div">
<label class="a_label">
<input type="checkbox" name="checkbox">
<span>Hello world</span>
</label>
</div>