用javascript替换多个<br>标签

Ahm*_*agy -4 html javascript

我想在文本中使用JavaScript 将多个<br />标签替换为单个<br />。我的文字像:

some text.<br />
<br />
<br />
<br />
<br />
<br />
<br />
some text
Run Code Online (Sandbox Code Playgroud)

我尝试了这段代码:

document.body.innerHTML = document.body.innerHTML.replace(/<br /> <br />
    <br /> <br /><br /> <br />/g,"<br />"); </script>
Run Code Online (Sandbox Code Playgroud)

但是它没有用。

paw*_*wel 6

您已指定它位于中document.body,因此位于DOM中。然后,您可以(并且应该)使用DOM方法:

var siblingBrs = [].slice.call( document.querySelectorAll('br + br') );
siblingBrs.forEach( function( br ){
    br.parentNode.removeChild( br );
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/jL8jkkt0/

注意,它<br />与源代码中元素的字符串表示形式无关。

顺便说一句,如果仅出于显示目的(以避免视觉间隙),您可以使用CSS:

br + br { display:none; }
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/jL8jkkt0/1/