2014-01-09 91 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去