2

我需要<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 单独处理每一行。

4

2 回答 2

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,删除前导和尾随空格以及任何尾随<br>元素,然后拆分每个剩余<br>元素以及它周围的空格。

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

无论哪种方式lines都将是一个数组,每个元素都是您的行之一。无论哪种方式,我都会删除前导和尾随空格,例如,第一项将"Ammonium NH%4^+"不是" Ammonium NH%4^+ ".

于 2012-07-20T03:43:10.157 回答
1

我将首先获取 innerHTML 并分配给一个 var。获取 var 并在 br 上拆分以获得一个数组,您可以使用它来做任何您需要的事情。

var contents = document.getElementById("aoeu").innerHTML;
var lines = contents.split("<br />");
// Do whatever you want with lines
于 2012-07-20T03:41:25.463 回答