簡體   English   中英

如何修剪js中的html內容?

[英]How to trim html content in js?

我有一個 contenteditable div,我想在將他的內容發送到服務器之前刪除開頭和結尾的空行和空格。 在這里閱讀了一些答案但沒有找到我想要的。 我想通過在開始和結束時刪除空格(如nbsp; )來做與trim功能相同的功能,但也刪除空行(這意味着空塊為<div></div><br><div><br></div>等等...)

下面是一些例子:

<div><br></div><div>Hello</div><div>World</div><div><br></div></div>

應該

<div>Hello</div><div>World</div>

並且

&nbsp;<div><br></div><div>Hello</div><div></div><div>World</div>&nbsp;&nbsp;

應該

<div>Hello</div><div></div><div>World</div>

等等...

請問怎么做?

這是您要查找的內容,使用for loopinnerHTMLouterHTML屬性。

 function trimHTML(t) { var between = false; var outHTML = ""; for (var i = 0; i < t.childNodes.length; i++) { var lt = t.childNodes[i]; //console.log(lt.innerHTML) var nowset = false; if (lt.innerHTML != undefined && lt.innerHTML != "" && lt.innerHTML != "<br>") { between = !between; nowset = true; outHTML += lt.outerHTML; } if (between && !nowset) { outHTML += lt.outerHTML; } } return outHTML; } var t = document.querySelector("#t"); var result = document.querySelector("#result"); t.innerHTML = "<div></div><div></div><div><br></div><div>Hello</div><div>World</div><div><br></div></div>"; result.value = "---TEST1: \\nfrom:\\n" + t.innerHTML + "\\nto:\\n" + trimHTML(t); t.innerHTML = "&nbsp;<div><br></div><div>Hello</div><div></div><div>World</div>&nbsp;&nbsp;"; result.value += "\\n---TEST2: \\nfrom:\\n" + t.innerHTML + "\\nto:\\n" + trimHTML(t);
 <div id="t"> </div> <textarea id="result" style="width: 100%;min-height:90px;"> </textarea>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM