3 回答
TA贡献1898条经验 获得超8个赞
我尝试了user76888布置的技术,并且效果很好。为了方便起见,我将其打包到jQuery插件中,并认为社区可能会喜欢它,因此在这里:
jQuery.fn.cleanWhitespace = function() {
this.contents().filter(
function() { return (this.nodeType == 3 && !/\S/.test(this.nodeValue)); })
.remove();
return this;
}
要使用此功能,只需将其包含在脚本标签中,然后选择一个标签以使用jQuery清理并按如下所示调用函数:
$('#widget').cleanWhitespace();
TA贡献1817条经验 获得超14个赞
递归版本:
jQuery.fn.htmlClean = function() {
this.contents().filter(function() {
if (this.nodeType != 3) {
$(this).htmlClean();
return false;
}
else {
this.textContent = $.trim(this.textContent);
return !/\S/.test(this.nodeValue);
}
}).remove();
return this;
}
TA贡献2016条经验 获得超9个赞
我认为这可以做到...
cleanWhitespace: function(element) {
element = $(element);
for (var i = 0; i < element.childNodes.length; i++) {
var node = element.childNodes[i];
if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
Element.remove(node);
}
}
添加回答
举报