删除段落中的单个br但不是双br?

时间:2017-07-07 11:42:51

标签: javascript css css3

我的段落包含一些<br>和一个<br>

我想添加所有单<br>,但不是双<br>

这怎么可能?

如果我使用

p br {display:none}

它隐藏了所有的br标签。但是,当我有两个br时,我希望它们仍然可以显示。 。 ..我们怎样才能做到这一点?似乎我找不到任何相关信息。

我也尝试了以下但没有成功:

p br { content: ' '; }

非常感谢你的时间!

- 编辑 -

我的段落格式如下:

<p> oremipsum lorem<br/>
orem blalgr<br/><br/>
loremg grthrt
</p>

4 个答案:

答案 0 :(得分:3)

好的,如果你想显示两个<br />但是删除一个,那么它很简单。您可以使用+下一个子选择器:

p {margin: 0;}
br {display: none;}
br + br {display: block; margin-bottom: 2em;}
<p>Hello. One BR below.</p>
<br />
<p>Hello. Two BR below.</p>
<br /><br />
<p>Hello. One BR below.</p>
<br />
<p>Hello. Two BR below.</p>
<br /><br />
<p>Hello. No BR below.</p>

答案 1 :(得分:0)

此jQuery将删除任何单个<br/>,但仍保留<br/><br/>

$(".container br").filter(function() {
  var $item = $(this);
  return !$item.next().is("br") && !$item.prev().is("br");
}).remove();
p {margin: 0;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <p>Hello. One BR below.</p>
  <br />
  <p>Hello. Two BR below.</p>
  <br /><br />
  <p>Hello. One BR below.</p>
  <br />
  <p>Hello. Two BR below.</p>
  <br /><br />
  <p>Hello. No BR below.</p>
</div>

答案 2 :(得分:0)

如果p的其他内容只是文字,您可以使用正则表达式替换所有单个br

&#13;
&#13;
var $p = $("p");
console.log($p.html());
$p.html($p.html().replace(/(\s*[^>\s]\s*)<br>\s*(?!\s*<br>)/gi, '$1'));
console.log($p.html());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
  oremipsum lorem    <br/> 
  orem blalgr <br/>  <br/> 
  loremg grthrt
</p>
&#13;
&#13;
&#13;

答案 3 :(得分:-1)

你只需要这个CSS:

br + br { display:none; }