相关疑难解决方法(0)

Javascript Regex替换html属性中的text not

我想要一个Javascript Regex来包装给定的start(<span>)和结束标记(即</span>)中给定的单词列表,但前提是该单词实际上是页面上的"可见文本",而不是在html属性中(例如链接的标题标记或<script></script>块内部.

我已经创建了一个基本设置的JS小提琴:http: //jsfiddle.net/4YCR6/1/

javascript regex

13
推荐指数
2
解决办法
1万
查看次数

jQuery查找/替换而不更改原始文本

有没有一种方法可以在jQuery中找到jQuery中的文本字符串,而不是用其他东西替换它,但是用一个元素包装该文本,这样当脚本完成时,它会用文本字符串包裹原始文本.

例:

原文

"Hello world to all people"
Run Code Online (Sandbox Code Playgroud)

搜索字符串

"world to"
Run Code Online (Sandbox Code Playgroud)

用...来代替 <i></i>

最终输出

"Hello <i>World to</i> all people"
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

一种工作代码:

function highlightChild(child) {
        $(childElements[child]).text("");
        console.log(child);
        $('.child_element_' + child).bind('textselect', function(e){
            var selection = e.text;
            var str = $("#construct_version").text();
            var wrap = jQuery(childElements[child]).text(selection);
            var re = new RegExp("" + selection + "", "g");

            console.log(str.replace(selection, function(match, key, val){
                console.log(match);
                console.log(key);
                console.log(val);
                jQuery(childElements[child]).text(val)
            }));
        });
    }
Run Code Online (Sandbox Code Playgroud)

上面的代码执行替换,但它实际上替换它显示为undefined.

因此,如果原始字符串是所有人的Hello world并且我想要将world替换为with <b>world to</b>,则它在console.log中显示为Hello undefined all

javascript jquery

5
推荐指数
2
解决办法
2405
查看次数

Chrome 扩展程序可在显示文本之前替换网页和 Facebook 帖子中的文本

我正在开发一个 Chrome 扩展程序,它可以替换网页文本中的指定字符串或正则表达式。

\n\n

总体来说效果很好,但有两个问题我想解决:

\n\n

(1) 在文本替换发生之前,显示原始的、未更改的网页文本。

\n\n

(2) 文本替换不会影响滚动到页面底部后动态加载的 Facebook 帖子。

\n\n

这是代码,改编自/sf/answers/420864181/#6012345,并进行了微小的更改。

\n\n
// manifest.json\n\n{\n    "manifest_version": 2,\n    "name": "Replace Text",\n    "version": "1.0", \n\n    "content_scripts": [ {\n        "js": [ "jquery.min.js", "replace.js" ],\n        "matches": [ "<all_urls>" ],\n        "run_at": "document_end"\n    } ]\n}\n\n\n// replace.js\n\njQuery.fn.textWalk = function( fn ) {\n    this.contents().each( jwalk );\n\n    function jwalk() {\n        var nn = this.nodeName.toLowerCase();\n        if( nn === \'#text\') {\n            fn.call( this );\n        } else if( this.nodeType === 1 && this.childNodes && this.childNodes[0] && nn …
Run Code Online (Sandbox Code Playgroud)

javascript regex replace google-chrome-extension

5
推荐指数
1
解决办法
6740
查看次数