我有一個div(contenteditable="true"
),其中包含一些文本和一些html。我試圖替換整個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'
作爲輸出,我想"test "
和" test3"
與替換()函數的結果被替換,而a.selected內的文本是不變。
編輯
有可能是在div內的一些其他HTML,可以忽略不計。如果替換功能開關的事情爲大寫,這裏有需要的輸入螞蟻ouptut:
輸入:'test <a class="selected">test2</a> <a>test3</a>'
輸出:'TEST <a class="selected">test2</a> TEST3'
EDIT 2
這似乎是工作,但不當replace()返回一些HTML時
$("div#text").contents().not("a.selected").each(function() {
this.nodeValue = replace(this.nodeValue);
});
demo:http://jsfiddle.net/ApgEc/2/
相同的開始,但不同的問題。我問了選擇器,現在沒問題。我只需要改變這些文本節點! :) – Manu
@Manu輸入可以理解,但是應該輸出什麼? – VisioN
也許我應該包裝()一個,以消除文本節點的問題...... – Manu