Jquery 用数组中已解析的HTML替换文本

Jquery 用数组中已解析的HTML替换文本,jquery,Jquery,我必须用数组中的内容替换页面中的文本 我的数组包含70个字,如: var wordMark = []; wordMark[0] = ['mytext','<b>my</b>Text']; wordMark[1] = ['anothertext','<b>another</b>Text']; wordMark[2] = ['therealtext','Therealtext']; 这是我的文本 一些类似lorem i

我必须用数组中的内容替换页面中的文本

我的数组包含70个字,如:

    var wordMark = [];
    wordMark[0] = ['mytext','<b>my</b>Text'];
    wordMark[1] = ['anothertext','<b>another</b>Text'];
    wordMark[2] = ['therealtext','Therealtext'];
这是我的文本 一些类似lorem ipsum的文本,包括其他文本 不,我添加课文来给出所有三个示例 施展魔法
您可以对其使用正则表达式:

jQuery

HTML


您是否可以编辑您的问题以包含一个实时演示?例如,使用带铅笔的“Stack Snippet”按钮打开编辑器,或指向其他地方的实时演示的链接?这样我们就可以感觉到发生了什么。@DavidThomas我插入了代码段。问题不是替换,这对代码很有效。问题是,被替换的文本没有被解析,所以我在页面上的文本是另一个文本,而不是另一个文本。我不知道为什么。也许你应该用解析器解析文本。无论如何,我的代码是有效的。您的代码在“我的代码到”时有效,但仅替换wordMark[i][0]的第一次出现。我应该在我的请求中提到,数组中的每个词至少出现3次。而且:即使它是一个div的类名,它也会替换这个词。。。这就是为什么我想从我的示例中使用基于节点的脚本…但是您可以修改regex,以排除class=wordmark\u元素
// Schriftzüge ersetzen
    function setWordMarks() {
        //for(var wordMarkI=0; wordMarkI<=wordMark.length-1; wordMarkI++){
        for(var wordMarkI=0; wordMarkI<=5; wordMarkI++){

            //alert(wordMark[wordMarkI][0]);

            $('body, body *')
                .contents()
                .filter(function() {
                    return this.nodeType == Node.TEXT_NODE
                        && this.nodeValue.toLowerCase().indexOf(wordMark[wordMarkI][0]) >= 0;
                }).each(function() {
                    this.nodeValue = this.nodeValue.toLowerCase().replace(wordMark[wordMarkI][0], wordMark[wordMarkI][1]);
                });
        };
    }
<script type="text/javascript">
    $(function() {
        var wordMark = [];
        wordMark[0] = ['mytext', '<b>my</b>Text'];
        wordMark[1] = ['anothertext', '<b>another</b>Text'];
        wordMark[2] = ['therealtext', 'Therealtext'];
        var content = $('#content').html();
        for (i=0; i < wordMark.length; i++) {
            var pattern = wordMark[i][0];
            var regExp = new RegExp(pattern, "i");
            content = content.replace(regExp, wordMark[i][1]);
        }
        $('#content').html(content);

    });
</script>
<div id="content">
    This is mytext and there are anothertext so therealtext is ok.
</div>