无论如何,我使用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>
答案 0 :(得分:1)
选择父项的.childNodes
,然后迭代集合。文本节点的.nodeType
为3
。然后使用.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 />