如何使用 jQuery 删除 div 开头的额外空格



我想从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/演示

最新更新