0

私はjQueryを使用して、20000未満または20000より大きい場合に何かを非表示または表示しようとしています

これは私が使用しているテーブル要素です。td.weightは、カスタム配送計算機を使用して動的に入力されます。20000ポンドのAPIによって返される最大重量があり、それからゼロになります。

計算された体重が20000ポンドを超えるか20000ポンド未満の場合、divを非表示または表示してユーザーに通知しようとしています。

この出力の場合、div.shipping-weightを表示します。

<td class="weight"> 20000 <small><em> lb's </em></small><br>
<div class="shipping-weight"><small>*Note: Up to 20,000 lbs max.  For shipping requirements over 20,000 lb's call our</small><br>
<small>PRICING HOTLINE: 1-877-444-444 </small>
</div>
</td>

この出力の場合、div.shipping-weightを非表示にします。

<td class="weight"> 19456 <small><em> lb's </em></small><br>
<div class="shipping-weight"><small>*Note: Up to 20,000 lbs max.  For shipping requirements over 20,000 lb's call our</small><br>
<small>PRICING HOTLINE: 1-877-444-444 </small>
</div>
</td>

これが私がこれまでに持っているものです。

    $('td.weight').filter(function(index){
return parseInt(this.innerHTML) > 20000;
    }).show('.shipping-weight');

これがjsfiddelです

*リビジョン:

これは私のajaxリクエストでは発生しないようですが、jsfiddleでは機能します。keyupとlivequeryを使用してリクエストを行っています。次のように:

        $('.input-mini').keyup().livequery('change', function () {
                url = $(this.form).attr('action');
                data = $(this.form).serialize();
                $.post(url, data, function () {
                        $('#checkout').load('/store/checkout_table');
                        $('#checkout_form').attr('action', url);
    $('.weight').filter(function(index){
        var num = parseInt(this.firstChild.textContent);
        return num >= 20000;
    }).find('.shipping-weight').show();

            $.cookie('all_cookie', null);

                });
                return false;
        });
4

3 に答える 3

0

実用的な解決策

$('.weight').filter(function(){
    var num = parseInt(this.firstChild.textContent);
    return num >= 20000;
}).find('.shipping-weight').show();

注:は、テキストノードなどのthis.firstChild内部の最初のDOMノードです。.weight" 19456 "

于 2013-03-27T10:23:27.907 に答える
0

これを試して

<table>
    <tr>
        <td class="weight"> <SPAN>**200230**</SPAN> <small><em> lb's </em></small><br>
            <div class="shipping-weight"><small>*Note: Up to 20,000 lbs max.  For shipping requirements over 20,000 lb's call our</small><br>
                <small>PRICING HOTLINE: 1-877-444-444 </small>
            </div>
        </td>
    </tr>
</table>


<script type='text/javascript'>
    $(document).ready(function() {
         var weight = parseInt($('td.weight span').html().replace(/\*/g, ''));
        if(weight >= 2000){ 
            $('div.shipping-weight').show();
        } else {
            $('div.shipping-weight').hide();
        }

    });
</script>
于 2013-03-27T10:31:52.040 に答える
0
    $('.weight').filter(function () {
      var weight = parseInt(this.firstChild.textContent);
      if (weight >= 20000) {
        $('.shipping-weight').show();
      } else {
        $('.shipping-weight').hide();
      }
   });
于 2013-03-27T11:56:15.620 に答える