0

我有一个无法解决的 JQuery 问题..

我有这一行:

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

找到等于 Var "$max" 的属性 "price"

现在,基本上,我有 2 个数字,$min 和 $max,我需要“查找”来检查属性是否在这两个数字之间..

例如:

  <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 回答