如何使用javascript或任何其他合格语言替换特定元素中的文本?

时间:2014-11-02 13:34:16

标签: javascript jquery html html5 innerhtml

我有这个HTML块(我不想更改代码):

<section class="welcome-block-top">
                <div class="inside">
                    <h2>Start a good life</h2>
                    <label>text to replace 1</label> 
                    <a href="" class="link-a">
                        some text i do not want to replace</a>
                </div>
            </section>

我想替换文本&#34;文本以替换1&#34;

我还想在这里替换文字:

        <h3>
            <span>
            text to replace 2                   </span>
        </h3>

请教我硕士,我搜索谷歌和堆栈溢出,我似乎得到的东西在我的情况下工作。

使用onload js方法的东西更可取,因为网页是动态加载的。

如果您知道使用其他任何语言执行此操作的更好方法,请不要犹豫通知我。

如果有方法清除元素内的文本然后插入新文本我将不胜感激。

2 个答案:

答案 0 :(得分:0)

这取决于您的实际用例,但可能是这样:

$('*:not(:has(*))').text(function(_,t){
  return t.replace("text to replace 1", "replacement")
});

这里的主要思想是将转换应用于没有子元素的所有元素的文本(DOM树中的叶子)。

如果您有更复杂的需求或性能要求,您可能需要查看专用库,例如​​我的:https://github.com/Canop/groumf

答案 1 :(得分:0)

您可以使用JQuery来轻松更改代码的内容。

oldContent = $("div.inside label:first").html();
$("div.inside label:first").html("put your desired content here");

在含有first类的label标记中找到div inside标记并使用参数更改其html内容。

修改

您当然可以保存旧内容并使用它。

$("div.inside label:first").html(oldContent + " new content");

$("div.inside label:first").append(" new content");