我有一个 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"
为 replace() 函数的结果,而 a.selected 中的文本保持不变。
编辑
div中可能还有其他html,可以忽略。如果替换功能将事物切换为大写,这里是所需的输入 ant ouptut :
输入 :'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);
});
演示:http: //jsfiddle.net/ApgEc/2/