假设我在标签中有以下代码<div>
:
<div id="something"><br /> <br />Hello<br />World<br><br /> </div>
我怎么能trim
在 JS 端修剪掉所有的空白和 HTML 换行符,所以我得到如下内容:
<div id="something">Hello<br />World</div>
假设我在标签中有以下代码<div>
:
<div id="something"><br /> <br />Hello<br />World<br><br /> </div>
我怎么能trim
在 JS 端修剪掉所有的空白和 HTML 换行符,所以我得到如下内容:
<div id="something">Hello<br />World</div>
您可以删除<br />
字符串开头和结尾的空格和节点
x = x.replace(/^( |<br \/>)*(.*?)( |<br \/>)*$/,"$2");
但是您必须将其应用于innerHTML
div 元素。
使用正则表达式替换,它将是
return html.replace(/\s*(<br ?\/>\s*)+/g, "<br />").replace(/^<br \/>|<br \/>$/g, "");
在 DOM 中,您需要遍历 div 的所有子元素并删除空空格和背靠背br
元素:
var el = document.getElementById("something");
for (var i=0, remove=true; i<el.childNodes.length; ) {
var child = el.childNodes[i];
if (child.nodeType == 3 && child.isElementContentWhitespace)
el.removeChild(child);
else if (child.nodeType == 1) {
if (child.nodeName.toLowercase() == "br" && remove)
el.removeChild(child);
else
// run DOM tree recursively?
remove = true;
} else {
remove = false;
i++;
}
}
if (el.lastChild.nodeType == 1 && el.lastChild.nodeName.toLowercase() == "br")
el.removeChild(el.lastChild);