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)れる式は常に be truebecause 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 に答える