繁体   English   中英

如何使用javascript删除html标签之间的空白?

[英]How to remove white space between html tags using javascript?

我在JavaScript变量中有一些HTML内容:

var string="<tr>  <td> data 1 </td> <td> data 2 </td>   <td> data 3 </td></tr>";

我想只删除HTML标记之间的空格。 列数据中的空格必须保持相同。

string.replace(/\n/g, "");
string.replace(/[\t ]+\</g, "<");
string.replace(/\>[\t ]+\</g, "><");
string.replace(/\>[\t ]+$/g, ">");

我尝试了上面的代码。 但这没有奏效。 有人请帮我解决这个问题。

string= string.replace(/>\s+</g,'><');

有一个jQuery解决方案:

使用.contents().filter()查找所有仅空白文本节点并删除()它们,如下所示:

 var $e = $("<tr> <td> data 1 </td> <td> data 2 </td> <td> data 3 </td></tr>"); $e.contents().filter(function() { return this.nodeType = Node.TEXT_NODE && /\\S/.test(this.nodeValue) === false; }).remove(); console.log($e.html()); // <td> data 1 </td><td> data 2 </td><td> data 3 </td> 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> Check console! 

上面的例子过滤了trtr 但是,也可以检查后代或做出复杂的决定,例如在内联元素之间保留空格,但在块元素之间删除。

忽略文本节点内的<和>字符:

var string = "<p>lol</p>  <p>let's remove <span>spaces between tags</span> </p>";
var rexp = new RegExp(">[\t\s ]*<", "g");
var result = string.replace(rexp, "><");

js在这里小提琴: http//jsfiddle.net/4cfgnfrx/

用你的例子: http//jsfiddle.net/4cfgnfrx/1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM