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

Selecting a series of strings separated by <br> within a class

本文关键字:分隔 字符串 一系列 br 选择      更新时间:2023-09-26

无论如何,我可以使用Jquery或Javascript抓取这些字符串中的每一个?.."搏击俱乐部",33 Main,休斯顿等

 <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>

试试这个

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

选择父级的.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);
}

为了支持IE8,我使用.querySelector而不是getElementsByClassName


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


使用 jQuery,你可以这样做:

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

获取具有类 cart_text2节点,然后用 <br> 拆分innerHTML,并可能进行一些空格修剪

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

然后说你有String.prototype.trim或一些填充物

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

我在split中使用的正则表达式是用来涵盖<br><br/><br />的可能实例