使用jQuery在页面上包装每个*

Jac*_*Dev 4 javascript jquery

我需要将每个星号包装在一个页面上<span class="red"></span>.我尝试过的一些事情都行不通.我认为这归结为我需要在页面中搜索特定的角色,而我无法弄清楚如何做到这一点.

Vis*_*ioN 5

为了不替换整个HTML(非常糟糕的态度),我们可以使用元素进行快速操作:

var specialTags = ["script", "style"].join("|"),
    re = new RegExp("^(?:" + specialTags + ")$", "i");

for (var els = document.getElementsByTagName("*"), i = els.length; i--;) {
    var el = els[i];

    if (re.test(el.tagName))
        continue;

    for (var j = 0, childs = el.childNodes, lj = childs.length; j < lj; j++) {
        var child = childs[j];
        if (child.nodeType === 3 && child.nodeValue.indexOf("*") > -1) {
            var segments = child.nodeValue.split("*");
            for (var k = 0, lk = segments.length; k < lk; k++) {
                el.insertBefore(document.createTextNode(segments[k]), child);
                if (k < lk - 1) {
                    var span = document.createElement("span");
                    span.className = "red";
                    span.appendChild(document.createTextNode("*"));
                    el.insertBefore(span, child);
                }
            }
            el.removeChild(child);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是纯JavaScript,不需要jQuery,这在这里真的没有帮助.

演示: http ://jsfiddle.net/T4ZXA/5/