Javascript 如何在不干扰其他子节点的情况下替换HTML节点中的文本?

Javascript 如何在不干扰其他子节点的情况下替换HTML节点中的文本?,javascript,html,Javascript,Html,我的结构是: <th>0.12345<div id="someDiv"></div></th> 我需要用其他文本替换0.123456,而不删除div。 使用innerHTML和innerText将删除所有内容 我知道我可以使用substr先剪切innerHTML,然后重建完整内容,但有最简单的方法吗?您需要选择TextNode对象并重置其nodeValue。现在怎么做。您可以从div开始,因为您知道它的id。然后您可以获得具有previousSi

我的结构是:

<th>0.12345<div id="someDiv"></div></th>
我需要用其他文本替换0.123456,而不删除div。 使用innerHTML和innerText将删除所有内容


我知道我可以使用substr先剪切innerHTML,然后重建完整内容,但有最简单的方法吗?

您需要选择TextNode对象并重置其nodeValue。现在怎么做。您可以从div开始,因为您知道它的id。然后您可以获得具有previousSibling属性的textNode

大概是这样的:

document.querySelector'someDiv'。previousSibling.nodeValue='TEST' 0.12345分区 var th=document.getElementsByTagName'th'[0]; th.childNodes[0]。textContent=foo;
0.12345somediv为了简单起见,我会将您需要的内容包装在一个span标记中,并直接对其进行操作

html:


将文本包装在一个文件夹中,这样您就可以直接使用它了?听起来不错!但如果我有div呢?如何在div之前插入我的文本?@splash27在这种情况下,您可以使用innerHTML,比如innerHTML=您的文本+innerHTML@JonP最好避免像这样使用innerHTML,因为它会删除所有事件处理程序。
<th>
    <span class="myValue">0.12345</span> 
    <div id="someDiv">div</div>
</th>
$(".myValue").html("XXX");