2014-01-09 49 views
-1

如何从使用javascript(仅)的段落中删除所有<br>标签。这是我的HTML代码从我试图删除:如何通过javascript从段落中删除br标签

<p> 
    Aenean odio dui, facilisis ut convallis in, congue quis mi. Etiam eu tristique metus. Vivamus id orci ac sapien porttitor pulvinar ut et dui. Phasellus porttitor quam dictum magna faucibus sollicitudin ac sit amet lectus.<br> 
    <br><br> 
    <a href="#"><i class="icon-facebook-sign" style="color:#; font-size:px; "></i></a><br> 
    <a href="#"><i class="icon-twitter-sign" style="color:#; font-size:px; "></i></a><br> 
    <a href="#"><i class="icon-google-plus-sign" style="color:#; font-size:px; "></i></a><br> 
    <a href="#"><i class="icon-phone-sign" style="color:#; font-size:px; "></i></a><br> 
    <a href="#"><i class="icon-pinterest-sign" style="color:#; font-size:px; "></i></a> 
</p> 

我知道如何使用jQuery将其删除。但我想通过纯JavaScript来删除它。

+2

'yourstr.replace( '
', '');' –

回答

2

你可以试试这个,

var e = document.getElementsByTagName("p")[0]; 
e.innerHTML = e.innerHTML.replace('<br>', ''); 

demo

+0

这不会工作 – 2014-01-09 11:56:35

+0

@ 2astalavista,谢谢。但它应该工作。 –

+1

您编辑了之前版本错误的帖子。 – 2014-01-09 12:01:42

2

在jQuery中

$('p').find('br').remove(); 

的JavaScript

var para=document.getElementById("para").innerHTML; 
para = para.replace(/[<]br[^>]*[>]/gi,""); 


<p id="para"> 
    Aenean odio dui, facilisis ut convallis in, congue quis mi. Etiam eu tristique metus. Vivamus id orci ac sapien porttitor pulvinar ut et dui. Phasellus porttitor quam dictum magna faucibus sollicitudin ac sit amet lectus.<br> 
    <br><br> 
    <a href="#"><i class="icon-facebook-sign" style="color:#; font-size:px; "></i></a><br> 
    <a href="#"><i class="icon-twitter-sign" style="color:#; font-size:px; "></i></a><br> 
    <a href="#"><i class="icon-google-plus-sign" style="color:#; font-size:px; "></i></a><br> 
    <a href="#"><i class="icon-phone-sign" style="color:#; font-size:px; "></i></a><br> 
    <a href="#"><i class="icon-pinterest-sign" style="color:#; font-size:px; "></i></a> 
</p> 
+1

好先生。但我已经要求JavaScript解决方案。 –

+1

@AdnanAhmed所以你为什么首先用jQuery标记它? –

0

这是另一种选择。可能会很慢。但仍然有效:

var test = document.getElementsByTagName('p').innerHTML; 
var new_string = test.split('<br>').join(''); 
document.getElementsByTagName('p').innerHTML = new_string; 
2

仅用于modern browsers(IE8 +应该是罚款) - 使用querySelectorAll

if (document.querySelectorAll) { 
    var brs = document.querySelectorAll('p br'); 
    for (var i = 0; i < brs.length; i++) { 
     brs[i].parentNode.removeChild(brs[i]); 
    } 
} 

演示:Fiddle


尝试此旧

if (document.querySelectorAll) { 
    var brs = document.querySelectorAll('p br'); 
    for (var i = 0; i < brs.length; i++) { 
     brs[i].parentNode.removeChild(brs[i]); 
    } 
} else { 
    var ps = document.getElementsByTagName('p'); 
    for (var i = 0; i < ps.length; i++) { 
     var brs = ps[i].getElementsByTagName('br'); 
     for (var j = brs.length - 1; j >= 0; j--) { 
      brs[j].parentNode.removeChild(brs[j]); 
     } 
    } 
} 

演示:Fiddle

+0

这是这整个线程中唯一明智的答案。 –

2

的海报想要一个JavaScript的唯一答案。

var p = document.getElementsByTagName("p")[0]; 

p.innerHTML = p.innerHTML.replace(/<br>/g, ''); 

的jsfiddle:http://jsfiddle.net/DPqzP/1/

0

As you shouldn't parse HTML with regex,你必须通过所有段落迭代,然后通过段落内的所有元素进行迭代,并检查BR元素,并删除它们。

var p = document.getElementsByTagName('p'); 

for (var i=p.length; i--;) { 
    (function it(el){ 
     if(el){ 
      if(!el.nodeName || !(/#text/i.test(el.nodeName))){ 
       if(el.firstChild){ 
        it(el.firstChild); 
       } 
      } 

      if(el.nextSibling){ 
       it(el.nextSibling) 
      } 
     } 
     if (el.tagName && el.tagName.toLowerCase() == 'br') { 
      el.parentNode.removeChild(el); 
     } 
    })(p[i]); 
} 

FIDDLE

1

警告!

这将删除所有的BR标签。

docDesc = docDesc.replace(/[<]br[^>]*[>]/gi,""); 

希望这有助于:)

0

添加ID /类p标签,这样就可以删除BR标签仅形成类/ ID是p

var pContent = document.getElementById("ID").innerHTML; 
var replacedContent = pContent.replace(/<br>/g,""); 
document.getElementById('ID').innerHTML = replacedContent; 

ID是的id p

如果您使用类,那么您必须通过标记名称获取元素,循环完成它以匹配类,然后执行此操作。

如果你不想给ID /类,你可以使用的getElementsByTagName去