2

divから価格を選択する必要がありますが、問題は、要素内に追加のネストされたdivやスパンがある場合があることです。

:notセレクターを使用する方法があるのか​​、それともhtmlの値を取得して、時々そこにあるspanとdivをスクラブする必要があるのか​​疑問に思っています。

$('.price').text();//returns the additional text from the span and div
$('.price').html();//returns the span and div tags and text

<!-- Simplified html -->
<div class="product">
<div class="price">$19.95
</div>
</div>

<!-- This product has shipping info inserted -->
<div class="product">
<div class="price"> $54.99
<div class="shipping-info">$5.99</div>
</div>
</div>

<!-- This product has the original price in a span and the shipping info inserted -->
<div class="product">
<div class="price"><span>$189.99</span>$99.99
<div class="shipping-info">Free Shipping</div>
</div>
</div>

価格の値($ 19.99、$ 54.99、$ 99.99)を取得する必要がありますが、追加のスパンや配送情報は取得しません。

HTMLを変更できません(スクリプトのみ)。

4

2 に答える 2

3
var price = $('.price').contents().filter(function() {
    return this.nodeType == 3;   //Filtering by text node
}).text();

デモ

于 2013-01-23T14:47:15.983 に答える
0

これは機能するはずです:

price.replace(/(<([^>]+)>.*?<\/([^>]+)>)/ig, "");

例:

'$54.99<div class="shipping-info">$5.99</div>'.replace(/(<([^>]+)>.*?<\/([^>]+)>)/ig, "");
于 2013-01-23T14:39:25.617 に答える