在jQuery中查找/替换HTML标记之间的字符串?

时间:2013-06-05 20:05:24

标签: javascript jquery html xml

说我有以下代码:

<div>
    Some text
    <h1>A divider</h1>
    More text
</div>

[最好]通过jQuery,如何获取“更多文字”并替换它?

3 个答案:

答案 0 :(得分:5)

jQuery并不真正支持文本节点,但是本机JS就像nextSibling那样:

$('div h1').get(0).nextSibling.nodeValue = 'New text';

FIDDLE

答案 1 :(得分:2)

使用.contents(),您可以查看子文本节点,然后使用String.prototype.replace替换该文本。类似的东西:

$("div").contents().each(function () {
    if (this.nodeType === 3) {
        this.nodeValue = this.nodeValue.replace("More text", "Some new text");
    }
});

DEMO: http://jsfiddle.net/uYJzM/

对于&#34;更多文字&#34;这是一个非常宽松的检查,因为它实际上取决于你想要做什么。

参考文献:

答案 2 :(得分:0)

将其包裹在span标记中并使用jQuery的text()方法:

$("div").children("span").text("Whatever text you want");

请参阅DEMO