2012-07-20 76 views
2

我需要逐行處理<div>的內容。一個縮短一塊它看起來像這樣:如何用Javascript逐行獲取div內容?

<div id='aoeu'> 
    Ammonium NH%4^+ <br /> 
    Copper(I) Cu^+ <br /> 
    Gold(I) Au^+ <br /> 
    Rubidium Rb^+ <br /> 
    Acetone CH%3COCH%3 <br /> 
    Glycerin C%3H%5(OH)%3 <br /> 
</div> 

我需要與各行獨立的JavaScript工作。

+0

「行」由換行符('\ n')分隔嗎?因爲如果你希望它們實際上出現在瀏覽器中的不同行上,你需要在它們之間放置'
'。 – nnnnnn 2012-07-20 03:38:40

+0

啊,好的,趕上。我會繼續...... – 2012-07-20 03:41:25

回答

5

假設「線」是由換行符分隔,你可以做這樣的事情:

​var el = document.get​ElementById("aoeu"), 
    content = el.innerHTML.replace(/ |^\s+|\s+$/g,""), 
    lines = content.split("\n"); 

也就是說,獲得元素的innerHTML,除去開頭和結尾的空白,以及然後拆分換行符。

演示:http://jsfiddle.net/RG2WT/

編輯:既然你已經添加<br>元素(雖然我會刪除尾隨一個):

var el = document.getElementById("aoeu"), 
    content = el.innerHTML.replace(/^\s+|\s*(<br *\/?>)?\s*$/g,""), 
    lines = content.split(/\s*<br ?\/?>\s*/); 

也就是說,得到了innerHTML,除去開頭和traling空格和任何尾隨的元素,然後在每個剩餘的<br>元素上加上它周圍的空白。

演示:http://jsfiddle.net/RG2WT/3/

無論哪種方式lines將與每一個元素是您的線路中的一個陣列。無論哪種方式,我將刪除前導空白和尾隨空白,例如,第一項將是"Ammonium NH%4^+"而不是" Ammonium NH%4^+ "

+0

你爲什麼使用逗號作爲行結束符? – 2012-07-20 03:45:04

+0

@ChristianMann - 我不是。我正在分裂一個換行符。 – nnnnnn 2012-07-20 03:47:51

+0

'document.getElementById(「aoeu」),'爲什麼有一個逗號,而不是分號? – 2012-07-20 03:50:41

1

我首先得到innerHTML並分配給一個var。採取變種和分裂br得到一個數組,你可以做任何你需要的。

var contents = document.getElementById("aoeu").innerHTML; 
var lines = contents.split("<br />"); 
// Do whatever you want with lines