如何替换嵌套在javascript/jquery中的元素的元素上的文本

jag*_*agc 0 html javascript jquery replace

我已经搜索了这个特定问题及其相关主题的网络和SO.一些解决方案接近但不适用,因为提供的解决方案仅限于在元素内寻找绝对点/索引(例如,第一个和最后一个节点).

我正在寻找jquery/javascript中的一种方法来替换与元素中任何位置的其他元素在同一级别上的文本.

<div id="master_element">
  <a href="#" id="link">Erp. a text</a>

  **This must be the only text replaced**

  <em>Herp. em text</em>
  <div id="nest_meh">
    <div id="we_need_to_dig_deeper">
      nested div from hell
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

ade*_*neo 5

我真的不明白为什么这会是一个问题,你根据标记来定位元素,你还会如何定位它们:

document.getElementById('link').nextSibling.nodeValue = 'something else';
Run Code Online (Sandbox Code Playgroud)

小提琴

编辑:

替换未包含在元素等中的文本节点,无论它们出现在主元素中的哪个位置,您都会执行以下操作:

var elems = document.getElementById('master_element').childNodes;

for (var i=0; i<elems.length; i++) {
    var el = elems[i];
    if (el.nodeType === 3 && el.nodeValue.trim().length) 
        el.nodeValue = 'something else';
}
Run Code Online (Sandbox Code Playgroud)

小提琴