如何使用javascript删除行末尾的<br/>

时间:2015-01-09 09:53:48

标签: javascript replace

如何使用javascript删除行尾的br标记?

<code>
line 1 <br>
line 2 <Br>
line 3 <br />
line 4 <br/>
</code>

3 个答案:

答案 0 :(得分:6)

这将删除页面上第一个 br元素中的最后一个code

var code = document.querySelector('code');
var brs = code.querySelectorAll('br');
var br = brs.length && brs[brs.length-1];
if (br) {
    br.parentNode.removeChild(br);
}

实例:

&#13;
&#13;
setTimeout(function() {
  var code = document.querySelector('code');
  var brs = code.querySelectorAll('br');
  var br = brs.length && brs[brs.length-1];
  if (br) {
    br.parentNode.removeChild(br);
  }
}, 500);
&#13;
<code>
line 1 <br>
line 2 <Br>
line 3 <br />
line 4 <br/>
</code>Text after so you can see it when it goes
&#13;
&#13;
&#13;

querySelectorquerySelectorAll都采用CSS样式选择器。它们在所有现代浏览器和IE8上都得到了支持。 querySelector会返回文档中第一个匹配元素(如果有),如果没有,则返回nullquerySelectorAll返回匹配元素的列表(可能为空,因此上面的检查)。

上面也使用了JavaScript强大的&&运算符,它是一个奇怪强大的||运算符的表兄弟; this post on my blog解释了两者。

当然,如果您需要更具体地了解您正在处理的code元素,请相应地调整第一个选择器。


如果你使用jQuery,它会更简单:

$("code").first().find("br").last().remove();

实例:

&#13;
&#13;
setTimeout(function() {
  $("code").first().find("br").last().remove();
}, 500);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<code>
line 1 <br>
line 2 <Br>
line 3 <br />
line 4 <br/>
</code>Text after so you can see it when it goes
&#13;
&#13;
&#13;

答案 1 :(得分:1)

替代js;这不会从代码中删除br,但br将不再添加换行符。

br {
  display: none;
}

答案 2 :(得分:0)

使用JQuery:

$("code").find("br:last").remove()

使用普通JS:

var targetElement = document.getElementsByTagName("code")[0],
lastChildElement = targetElement.lastChild;
targetElement.removeChild(lastChildElement);