跨浏览器修剪元素innerHTML
的最佳方法是什么?
jsFiddle:http://jsfiddle.net/6hk8z/
答案 0 :(得分:0)
我假设您对
html代码感到困惑,该代码不是空格,而是仅由浏览器呈现。请参阅下面的自定义实施:
String.prototype.trimmed = function(){
return this.replace(
/^(\s| |<br\s*\/?>)+?|(\s| |<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+$/);
}
答案 2 :(得分:-1)
你试过jQuery的$.trim()
吗?有关更多详细信息,请参阅jQuery documentation。