2014-02-15 110 views
0

我有HTML這樣的。如何使用jQuery遍歷到<br>標籤?如何遍歷jQuery中的DOM對象?

條件:

  1. 不應該使用類屬性。
  2. 不應該使用分裂法。

例如:

<html> 
<body> 
<div> 
    <div> 
hello 
    </div> 
123 
<br> 
paragraphs 
<br> 
escapes 
<br> 
</div> 
</body> 
</html> 

對我來說,唯一的選擇就是使用<br>標籤,遍歷 所以我怎麼能遍歷<br><br>後得到下一個數據。

我試圖像這樣得到HTML,而是通過使用<br>無法循環。

var html=$(body).html(); 

輸出我需要:
「逃脫」

能否請你幫我通過<br>標籤穿越?

回答

1

你正在尋找的文本都沒有自己的標籤中。它們被稱爲文本節點,而jQuery沒有簡單的方法來抓取它們。但是你可以用你的jQuery使用一些原始的JavaScript來做到這一點。

在這個例子中,腳本抓住所有的外DIV中的文本節點(contents()爭奪每一個類型的子節點,然後filternodeType==3爭奪只是文本節點),並通過他們循環,提醒每個:

$('body > div').contents().filter(function() { 
     return this.nodeType == 3; 
    }) 
    .each(function(){ 
     alert($(this).text());} 
    ); 

你會看到,它只是找到段前外格內,最後斷行後的空白頻段(警報是空的第一個和最後一個文本節點),而且還發現每一塊<br>小號

+0

當我嘗試以上方法。在警報我只得到空的空間 – user3206085

0

嘗試以下操作:

$('br').each(function(){ 
    console.log($(this).val()); 
}); 

檢查以下鏈接瞭解更多信息: http://api.jquery.com/jquery.each/

希望它能幫助。

+0

PS之間的文本:不要忘了沒有,如果你找到answe接受答案r很有用;) – DenisR

+1

換行符沒有值(或文本)。 OP需要將文本打包在自己的標記中(如Pranav所示),或者抓取文本節點(如我所建議的那樣)。 – Faust