2

現在のショッピング カートでは、ソフトウェアを介して特定の州を送料無料から除外することはできないため、特定の州に入ったときに送料無料セクションを削除するスクリプトを作成しようとしています。

私は何時間もそれに取り組んできましたが、オンラインのどこでも、またはテストを通じて答えを見つけることができないようです. 私を正しい方向に向けることができる人は誰でも私のヒーローになる. 私は jQuery や JavaScript などに非常に慣れていないため、これがばかげた簡単な質問である場合はご容赦ください。

<div>
<div>HONOLULU, <span id="state">OK</span> 96819</div>
<ul>
    <li>$0.00 - Free Shipping</li>
    <li>$16.39 - UPS Ground</li>
    <li>$21.50 - UPS 2nd Day Air®</li>
    <li>$36.39 - UPS Next Day Air®</li>
    <li>$0.77 - First Class Mail</li>
    <li>$6.26 - Priority Mail</li>
</ul>

$(document).ready(function () {

if ($('#state:contains("HI" || "AK")')); {
    $('li:contains("$0.00")').remove();

} });

他の番号に変更<li>$0.00 - Free Shipping</li>すると、本来あるべきようにリストに表示されますが、リストに<span id="state">ある場合<li>$0.00 - Free Shipping</li>は削除されます。

私が行ってきたすべての調査から、コード正しいように見えますが、機能していません。これがフィドルです。

4

3 に答える 3

5

:contains("HI" || "AK")正確な string"HI" || "AK"に一致し、OR はありません。

if ( $('#state:contains(HI)').length || $('#state:contains(AK)').length)  {
    $('li:contains("$0.00")').remove();
}

フィドル

編集:

@David が下のコメントで指摘しているように、要素が存在するかどうかを確認するには、長さを確認する必要があります。

于 2013-07-22T19:45:14.753 に答える
1

これは私のために働いた:

if ($('#state').text()=='HI' || $('#state').text()=='AK') {
        $('li:contains("$0.00")').remove();
}

http://jsfiddle.net/9Kpyy/2/

于 2013-07-22T19:48:43.347 に答える