如何替换HTML标记的文本

时间:2012-05-03 07:46:22

标签: jquery html text tags innerhtml

我不知道如何调用它,但让我称之为半内部文本。

实施例

<div id='myDiv'>
    This is the semi-inner text
    <div id='other'></div>
    This is the semi-inner text
<div>

我想使用jquery删除/替换This is the semi-inner text

我该怎么做?

6 个答案:

答案 0 :(得分:3)

如果您只关心子节点......

$('#myDiv').contents().filter(function() {
    return this.nodeType == 3
}).each(function() {
    this.data = this.data.replace(/This is the semi-inner text/g, 'swapped');
});​

jsFiddle

如果要检查所有后代节点,请在检测到元素节点(this.nodeType == 1)时使该函数递归。

答案 1 :(得分:2)

$('#myDiv')
    .contents()
    .filter(function() {
        return this.nodeType == 3;
    })
    .each(function() {
        $(this).remove();
    });

答案 2 :(得分:1)

使用contents()并过滤掉所有等于3的nodeType并删除它们:

$('#myDiv').contents().filter(function() {
    return this.nodeType == 3;
}).remove();

答案 3 :(得分:0)

使用以下代码替换内容

$("#other").html("your code");

并且用户将代码包装在带有id

的span标记中

答案 4 :(得分:0)

最简单的方法是将其放在ID如此的范围内:

<div id='myDiv'>
    <span id="myInnerText">This is the semi-inner text</span>
    <div id='other'></div>
    This is the semi-inner text
<div>

然后将其替换为:

$("#myInnerText").text("replacement text");

答案 5 :(得分:0)

你也可以这样做:

target_div = $("#myDiv")
  reg_exp  = /This is the semi-inner text/g;
  new_text = "some other text"

  target_div.html(
    target_div.html()
      .replace(
        new RegExp(reg_exp),
        new_text)
        );
 });

Demo