使用jQuery,如何修改标签之外的文本?

Jac*_*ble 3 html string jquery

给定一个与span和div内部相邻的文本字符串,有哪些方法可以修改该文本,使周围的HTML保持不变?例如:

<div id="my-div">modify this text<span id="my-span"></span></div>
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西

$('#my-div').html(function(i, elem){blah;});
Run Code Online (Sandbox Code Playgroud)

但这似乎会导致删除跨度并添加新的跨度(我注意到某些样式在跨度上丢失).

我意识到最好在应用客户端代码之前将文本字符串包装在自己的HTML标记中,但这是我无法控制的.

Sid*_*ddy 8

这似乎有效:

$('#my-div').contents()
            .filter(function() { return this.nodeType == 3; })
            .replaceWith('new text or html');
Run Code Online (Sandbox Code Playgroud)

nodeType == 3用于测试文本节点.