Javascript 仅更改标签文本

标签 javascript

<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';

最佳答案

您需要专门选择文本节点

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 个子节点:labelinput 之间的空格和换行符、 >input 本身,以及 Hello world 和周围的空白。

关于Javascript 仅更改标签文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50500701/

相关文章:

javascript - 将 Acrobat JavaScript 转换为 Adob​​e ES4 Deigner JavaScript

javascript - 正则表达式电话号码验证

javascript - onsubmit后Chrome建议框未清除

javascript - 这段 JavaScript 代码有什么问题?我正在尝试更改单击时 <h1> 元素的文本

javascript - 方括号和其中的字符串的正则表达式

javascript - Meteor:如何对 session 变量的集合进行排序?

javascript - Safari 上的 CSS TranslateY 动画

javascript - 如何按日期时间优化数组过滤?

javascript - JQGrid 有两个垂直滚动条(左和右)

javascript - 在 IE 中轮询的 setTimeout 间隔是多少比较合适?