2012-03-17 6 views
0

Mootoolsでは、子ノードを上書きせずに要素のテキストを設定する最もクリーンな方法は何ですか?Mootoolsが子ノードを壊さずに要素テキストを設定

私は、これはそれを行うだろうと思ったこの

<div id="foo"> 
    new improved foo 
    <div id="bar"> 
    bar 
    </div> 
</div> 

に...この

<div id="foo"> 
    foo 
    <div id="bar"> 
    bar 
    </div> 
</div> 

から行きたい:

$('foo').set('text', 'new improved foo') 
が、それは全体の要素の内容を置き換えます、結果として

<div id="foo"> 
    new improved foo 
</div> 

(btw、これは set('html', ...) AFAICSと同じです。これはMootoolsのバグですか?)

+0

いや、それはないです。 'el.set( 'html'、 'high');' vs 'el.set( 'text'、 'hi');'を試してください。 –

+0

@DimitarChristoffああ、 –

答えて

6

テキストの内容が常にタグの中で最初にある場合は、のテキストを編集してから、後で子供を再注入することができます。ここ

var myChildren = $('foo').getChildren().dispose(); 
$('foo').set('text', 'new improved foo'); 
$('foo').adopt(myChildren); 

はデモ:とにかくhttp://jsfiddle.net/x2Vke/


、あなたのHTMLコードを編集することができれば、私はにあなたを示唆ために<span>し、それを参照するようないくつかのインラインタグであなたのテキストコンテンツを折り返します

<div id="foo"> 
    <span class="text-content">foo</span> 
    <div id="bar"> 
    bar 
    </div> 
</div> 
その後

あなたは、単に行うことができます:テキストを置き換えるために

$('foo').getFirst('.text-content').set('text', 'new improved foo'); 

デモ:http://jsfiddle.net/hMNXN/

+0

おかげで - テキストが葉のノードにあるようにHTMLを並べ替えるのが最もクリーンな方法です –

関連する問題