我想从div中删除多余的空格-create标签(特别是br&p)。div 内容可能如下:
<div>
<br>
<br>
something
<br>
something
</div>
但在其他情况下,它们也可以很好:
<div>
something
<br>
something
</div>
如何在 BR 计数已知的情况下工作(例如,开头始终为单个 BR)中描述的解决方案 如何使用 jquery 删除前两个 BR 标签?如果开始时的 BR 金额介于 0 和无穷大之间怎么办?此外,不应删除中间的 BR。
寻找类似 $.trim 的东西来获得div 的:)
将删除文本块中所有重复的<br>
元素(包括开头):
$("div").html(function(i, html) {
return $.grep(html.split(/<brs*/?>/), function(part) {
return $.trim(part) !== "";
}).join("<br>");
});
演示:http://jsfiddle.net/S8qeb/
这将仅在文本块的开头删除所有<br>
元素:
$("div").html(function(i, html) {
var textFound = false;
return $.grep(html.split(/<brs*/?>/), function(part, i) {
if ($.trim(part) !== "") textFound = true;
return textFound;
}).join("<br>");
});
演示:http://jsfiddle.net/S8qeb/1/
试试这个
var otherContent = false;
$('#yourdiv').contents().each(function() {
if(!otherContent) {
if(this.tagName.toLowerCase() == "br") {
$(this).remove();
} else {
otherContent = true;
}
}
});
尝试
$('.trimmable > div').contents().each(function(i){
var node = $(this),
contents = $.trim(node.text());
if (this.nodeName === 'BR' || contents === '') {
node.remove();
} else {
return false;
}
});
http://jsfiddle.net/gaby/3TnMT/1/演示