我遇到了JQuery的问题我无法解决..
我有这句话:
var $price = $data.find('li[price=' + $max + ']');
找到属于“价格”的属性等于Var“$ max”
现在,基本上,我有2个数字,$ min和$ max,而且我需要“find”来检查属性是否在这两个数字之间..
例如:
<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;
});
但我没有回报:(
谢谢!
答案 0 :(得分: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;
});