contenteditable="true"
いくつかのテキストといくつかの html を含むdiv ( ) があります。特定のクラスとのリンクを除いて、div 全体のテキストを置き換えようとしています。
私は試した:
$('div#text').contents().not('a.selected').each(function() {
$(this).html(replace($(this).text()));
});
しかし、そう$(this).html()
ですnull
か?
divのテスト内容は'test <a class="selected">test2</a> test3'
出力として、replace() 関数の結果に置き換えたい"test "
と思い" test3"
ますが、a.selected 内のテキストはそのままです。
編集
div 内に他の html が存在する可能性がありますが、無視できます。replace 関数が大文字に切り替える場合、必要な入力 ant outtut は次のとおりです。
入力:'test <a class="selected">test2</a> <a>test3</a>'
出力:'TEST <a class="selected">test2</a> TEST3'
編集2
これは機能しているように見えますが、replace() が HTML を返す場合はそうではありません
$("div#text").contents().not("a.selected").each(function() {
this.nodeValue = replace(this.nodeValue);
});