-1

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

4

3 回答 3

0

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

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

更新了 jsFiddle

于 2013-08-26T22:17:22.733 回答
0

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

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+$/);
}

在 jsfiddle.net 上的演示

于 2013-08-26T23:17:04.617 回答
-1

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

于 2013-08-26T22:16:26.960 回答