私は、製品の価格を表示するページを扱っています。通常、それはこのようになりますが:さまざまなHTML構造のjQueryセレクター
<span id="priceText">
$26.94
</span>
アイテムが販売されて、それは次のようになります。
:<span id="priceText">
<strike>$26.94</strike>
<span class="salePrice">$25.00</span>
</span>
が、私はそうのような任意のページから価格を抽出し、汎用的な機能を持っています
var getPrice = function(price_id) {
return jQuery(price_id).text();
};
ここで、price_id
は価格を含む要素のIDです。
はっきり分かるように「売却」バージョンは、私がpriceText
にprice_id設定されている場合、私は、製品の上のHTMLを制御することはできません両方の$ 26.94と$ 25.00返されるので、これは、上記の構成では動作しませんページ、私は構造を変更することはできません。このHTML構造を持たない他のページでgetPrice
関数を使用する必要があるので、変更しないようにしたい。
私が探しているのは、アイテムが販売されている場合は$ 25.00、そうでない場合は$ 26.94を返すjQueryセレクタのようなものです。
jQuery('#priceText .salePrice').length ? jQuery('#priceText .salePrice').text() : jQuery('#priceText strike').text()
は、しかし、私はこのようなコードのカスタムラインを避けたい:ような何かは、私は現在、次の処理を行い、カスタムスニペットを持って
「NOTストライクタグにpriceText
の内部のすべてのテキストを返します」。私はこれがjQueryセレクタだけでは不可能かもしれないと思うが、私は誰かが私を間違っていると証明したいと思っている!
ああ、それは美しさのものです!私はそれを試してみましょうが、私はこれがまさに私が探していたと思います – Pabs123
良い解決策! Plunker https://plnkr.co/edit/2wNRMNAnywtPcEOuU4ri?p=preview –
これは素晴らしく、複数のセレクタを使用するとは考えていませんでした。セレクタは同時に使用しませんでした。それはたくさんの意味があります。ありがとうございました! – Pabs123