0

私は解決できなかったJQueryに問題があります..

私はこの行を持っています:

var $price = $data.find('li[price=' + $max + ']');

Var "$max" に等しい属性 "price" を見つける

さて、基本的に、$min と $max の 2 つの数値があり、属性がこの 2 つの数値の間にあるかどうかを「検索」で確認する必要があります。

例えば:

  <ul class="ourHolder">
    <li price="200">
    <img src="img1.jpg">
    </li>
    <li price="300">
    <img src="img2.jpg">
    </li>
</ul>

    <script>

// get and assign the ourHolder element to the
    // $holder varible for use later
  var $holder = $('ul.ourHolder');

  // clone all items within the pre-assigned $holder element
  var $data = $holder.clone();
    var $min = 100;
    var $min = 400;
    var $price = $data.find('li[price=' + $max + ']'); //Not sure what to do here
    </script>

両方の<li>タグを返す必要があります.. (どちらも 100 から 400 の間です)。

新しい編集:

私はこれを追加しました:

var price = data.find('li').filter(function() {
   var price = parseInt($(this).data('price')); // i think here it doesn't find nothing
    return price >= minPrice && price <= maxPrice;
}); 

しかし、私は何も返しません:(

ありがとうございました!!

4

1 に答える 1

2

data独自の属性を作成するだけでコードが無効になるため、まず属性を使用する必要があります。次にfilter()、より複雑な一連のルールに基づいて要素を検索するために使用できます。これを試して:

<li data-price="200">
    <img src="img1.jpg">
</li>
<li data-price="300">
    <img src="img2.jpg">
</li>
var minPrice = 100;
var maxPrice = 400;
var $matchingLi = $data.find('li').filter(function() {
    var price = parseFloat($(this).data('price'));
    return price >= minPrice && price <= maxPrice;
});
于 2013-02-03T16:49:41.867 に答える