跨浏览器修剪元素innerHTML的最佳方法是什么?

时间:2013-08-26 21:47:47

标签: javascript html

跨浏览器修剪元素innerHTML的最佳方法是什么?
jsFiddle:http://jsfiddle.net/6hk8z/

3 个答案:

答案 0 :(得分:0)

我假设您对  html代码感到困惑,该代码不是空格,而是仅由浏览器呈现。请参阅下面的自定义实施:

String.prototype.trimmed = function(){
    return this.replace(
        /^(\s|&nbsp;|<br\s*\/?>)+?|(\s|&nbsp;|<br\s*\/?>)+?$/ig, ' '
    ).trim();
}

更新jsFiddle

答案 1 :(得分:0)

使用DOM,而不是您需要解析的innerHTML

function trimContents(element) {
    function iterate(start, sibling, reg) {
        for(var next, c = element[start]; c != null; c=next) {
            next = c[sibling];
            if (c.nodeType == 1 && c.nodeName.toLowerCase() == "br"
             || c.nodeType == 3 && !(c.nodeValue = c.nodeValue.replace(reg, "")))
                element.removeChild(c);
            else
                break;
        }
    }
    iterate("firstChild", "nextSibling", /^\s+/);
    iterate("lastChild", "previousSibling", /\s+$/);
}

demo at jsfiddle.net

答案 2 :(得分:-1)

你试过jQuery的$.trim()吗?有关更多详细信息,请参阅jQuery documentation