0

とにかく、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>
4

3 に答える 3

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);
}

IE8をサポートするために.querySelector代わりに使用しました。getElementsByClassName


使用.innerHTML方法は、要素に対するブラウザの特定の HTML レンダリングによって異なりますbr。DOM をトラバースする方が安全です。


jQuery を使用すると、次のように実行できます。

var result = $(".cart_text2").contents().map(function(i, node) {
    if (node.nodeType === 3)
        return node.data;
}).toArray();
于 2013-10-23T22:05:41.497 に答える
1

これを試して

var elements = document.getElementsByClassName('cart_text2')[0].innerHTML.split('<br>');
console.log(elements);
于 2013-10-23T22:07:00.823 に答える
0

Nodeを classで取得し、 with でcart_text2分割innerHTML<br>、場合によっては空白のトリミングを行います

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

次に、String.prototype.trimまたはいくつかのポリフィルがあるとします

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

で使用したRegExpsplit、 の可能なインスタンスをカバーするためのもの<br><br/>あり、<br />

于 2013-10-23T22:04:36.563 に答える