0

この特定の質問とそれに関連するトピックについて、ネットと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>
4

2 に答える 2

5

これが問題になる理由が本当にわかりません。マークアップに基づいて要素をターゲットにします。他にどのようにターゲットにしますか:

document.getElementById('link').nextSibling.nodeValue = 'something else';

フィドル

編集:

要素などにラップされていないテキストノードを置き換えるには、マスター要素内のどこにあるかに関係なく、次のようにします。

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

フィドル

于 2013-07-04T09:34:23.443 に答える
0

jQueryベースのソリューションで、すべてのテキストノードを置き換えます-微調整する必要があります

$('#master_element').contents().filter(function(){
    return this.nodeType == 3;
}).each(function(){
    this.textContent = 'new'; //need to make it cross browser 
})

デモ:フィドル

于 2013-07-04T09:40:34.893 に答える