JQuery:如何在嵌套标签后替换文本?

Pet*_*vin 8 jquery jquery-selectors

我正在试图弄清楚jQuery语句用"orange:"重命名"apple"

<a id="alvin" href="http://www.camille.com"><ins class="xxx">Anna</ins>apple</a>
Run Code Online (Sandbox Code Playgroud)

这可以轻松完成吗?

use*_*716 11

#从ID中删除了它,因为它不是有效的ID字符.

鉴于此,试试这个:

实例: http ://jsfiddle.net/u49wy/

var $contents = $('#alvin').contents();

$contents[$contents.length - 1].nodeValue = 'orange';
Run Code Online (Sandbox Code Playgroud)

.contents() 返回元素的所有子节点,包括文本节点.

然后代码抓取最后一个元素节点(它是一个文本节点)并更新它nodeValue,这是更新文本节点值的方式.


And*_*y E 6

帕特里克打败了我,但我的解决方案有点动态,因为它会在任何地方选择文本,即使两边都有标签:

$('#alvin').contents().filter(function () {
    return this.nodeType == 3;
})[0].nodeValue = "orange";
Run Code Online (Sandbox Code Playgroud)

它通过过滤内容以便只保留文本节点,并将第一个更改nodeValue为"橙色"来完成此操作.

http://jsfiddle.net/ssRyB/