function Node(parmNode) {
    if (parmNode.hasChildNodes()) {
        for (var i = 0; i < parmNode.childNodes.length; i++) {
            var node = parmNode.childNodes[i];
            if (node.nodeType == 3) {
                if (node.nodeValue.length > 1)
                {
                    var b = document.createElement("B");
                    b.innerHTML = node.nodeValue;
                    node.parentNode.insertBefore(b, node);
                    node.parentNode.removeChild(node);
                }
            }
            if (node.nodeName == "A") break;
            Node(node);
        }
    }
}

解决方案 »

  1.   

    用 replaceChild 更好一些:function Node(parmNode) {
        if (parmNode.hasChildNodes()) {
            for (var i = 0; i < parmNode.childNodes.length; i++) {
                var node = parmNode.childNodes[i];
                if (node.nodeType == 3) {
                    if (node.nodeValue.length > 1)
                    {
                        var b = document.createElement("B");
                        b.innerHTML = node.nodeValue;
                        node.parentNode.replaceChild(b, node);
                    }
                }
                if (node.nodeName == "A") break;
                Node(node);
            }
        }
    }
      

  2.   

    nodeValue 类似于 innerText, 是文本格式, 当然不会变粗了...
    < 和 > 被转义了...
      

  3.   

    这样的思路似乎有点问题,你的node是text型,它的nodevalue只是文本数据。要支持html就需要对上级节点操作。
    我对你的Node函数稍微改了一下,但是不能完全达到你的要求,但是也许你可以沿着这个思路走下去。function Node(parmNode) {
        if (parmNode.hasChildNodes()) {
            for (var i = 0; i < parmNode.childNodes.length; i++) {
                var node = parmNode.childNodes[i];
       if (node.nodeName == "A"||node.nodeName=="B") break;
                if (node.nodeType == 3) {
                    if (node.nodeValue.length > 1) {
                        //node.nodeValue = node.nodeValue.replace("单元", "<b>单元</b>");
    var tmp=node.nodeValue;
    tmp=tmp.replace("单元", "<b>单元</b>");
    if(tmp.search('单元')>=0)  node.parentNode.innerHTML = tmp;
                    }
                }
             
                Node(node);
            }
        }
    }
      

  4.   

    用 replaceChild 更好一些支持,还是高人给的方案好。将高人给的稍微修改了一下:
    function Node(parmNode) {
        if (parmNode.hasChildNodes()) {
            for (var i = 0; i < parmNode.childNodes.length; i++) {
                var node = parmNode.childNodes[i];
                if (node.nodeType == 3) {
                    if (node.nodeValue.length > 1)
                    {
                        var b = document.createElement("span");
                        b.innerHTML = node.nodeValue.replace("单元", "<b>单元</b>");
                        node.parentNode.replaceChild(b, node);
                    }
                }
                if (node.nodeName == "A") break;
                Node(node);
            }
        }
    }