在一个类中选择由<br/>分隔的一系列字符串

时间:2013-10-23 22:00:13

标签: javascript jquery

无论如何,我使用Jquery或Javascript来抓取每个字符串?..'搏击俱乐部',33主要,休斯顿等等

 <span class="cart_text2">
    Fight Club
    <br>
    33 main,
    <br>
    houston,
    <br>
    TX US
    <br>
    Phone Number: 777-888-9999
    <br>
    Email: abc@test.com
   </span>

3 个答案:

答案 0 :(得分:1)

选择父项的.childNodes,然后迭代集合。文本节点的.nodeType3。然后使用.data属性从节点中获取文本。

var elems = document.querySelector(".cart_text2").childNodes;
var result = [];

for (var i = 0, len = elems.length; i < len; i++) {
    if (elems[i].nodeType === 3)
        result.push(elems[i].data);
}

我使用.querySelector代替getElementsByClassName以支持IE8。


使用.innerHTML取决于浏览器对br元素的特定HTML呈现。遍历DOM更安全。


使用jQuery,你可以这样做:

var result = $(".cart_text2").contents().map(function(i, node) {
    if (node.nodeType === 3)
        return node.data;
}).toArray();

答案 1 :(得分:1)

试试这个

var elements = document.getElementsByClassName('cart_text2')[0].innerHTML.split('<br>');
console.log(elements);

答案 2 :(得分:0)

使用课程cart_text2获取节点,然后将innerHTML<br>分开,并可能进行一些空格修剪

var node = document.getElementsByClassName('cart_text2')[0],
    strs = node.innerHTML.split(/<br\s*\/?>/);

然后说你有String.prototype.trim或某些polyfill

strs = strs.map(function (e) {return e.trim();});

我在split中使用的 RegExp 是为了涵盖<br><br/><br />

的可能实例