0

我有一个过滤器并将这个脚本用于过滤器。

filteredData = filteredData.filter(function() {
  var elm = $(this),
  price = parseInt('0' + elm.attr('data-price'), 10) || 0;
  if ($(price < 15)) {
    return !(250 <= price);
  } else {
    return !(sliderData <= price);
  }
});

但有些不对劲。价格值是 15 或更多。但是代码永远不会进入 else 结构。

4

3 回答 3

2

尝试$()从此行中删除函数调用:

if ($(price < 15)) {

它应该是:

if (price < 15) {

$()函数返回一个对象,并且所有对象都是“真实的”,因此此代码将始终进入if块而不是else块。

(顺便说一句,假设您解决了上述问题,在if分支中,您返回的表达式!(250 <= price)将始终是true因为pricewill be < 15,所以您不妨return true;在那时说。)

于 2012-07-10T05:54:24.587 回答
1

似乎您无意中放置了“$”选择器:

试试看:if (price < 15) { (...)

于 2012-07-10T05:57:31.263 回答
0

我觉得你的if说法有些问题。

filteredData = filteredData.filter(function() { 
            var elm = $(this), 
            price = parseInt('0' + elm.attr('data-price'), 10) || 0; 
            if (price < 15) { 
                return !(250 <= price); 
            } else { 
                return !(sliderData <= price); 
            } 
        });

这会有所帮助。

于 2012-07-10T05:55:03.697 回答