2017-01-25 5 views
1

My ifステートメントが正しく動作していません。If複数の|| && not working

私はJSONファイルからアイテムを引き出し、ブランド別にアイテムを表示し、複数のカテゴリを表示しようとしています。

アイテムカテゴリが5または6でアイテムブランドレターが「C」のみの場合は、それらのアイテムを表示する必要があります。しかし何らかの理由でこのifの声明文では、他のブランドの文字も表示しています。例。 「B」、「F」の項目も表示されます。

そうではありませんように動作しているようです。私はそれを使用しているように||を使用することができませんか?アイテムカテゴリ番号の1つを削除すると機能しますが、両方のカテゴリを表示することはできません。

  //display peppers function 
      function displayPeppers() { 
       var categoryImage = ''; 
       $.each(product_data, function (i, item) { 
        //convert JSON strings to uppercase for comparison 
        var brandLetter = item.itemBrandLetter.toUpperCase(); 
        var foodService = item.itemDeli.toUpperCase(); 

        if(item.itemCategory == 5 || item.itemCategory == 6 && brandLetter == "C" && foodService == "N") { 
        categoryImage += '<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">' + '<a href="#"' + 'class="showProduct"' + 'data-itemcountry="' + item.itemCountry + '"' + 'data-itemcategory="' + item.itemCategory + '"' + 'data-itempageurl="' + item.itemFullUPC + '"' + 'data-itemgmo="' + item.itemGMOFree + '"' + 'data-itembpa="' + item.itemBPAFree + '"' + 'data-itemgluten="' + item.itemGlutenFree + '"' + 'data-itemlowsodium="' + item.itemLowSodium + '"' + 'data-itemkosher="' + item.itemKosherSym + '"' + 'data-itemorganic="' + item.itemOrganic + '"' + 'data-itemimage="' + item.imageURL + '"' + 'data-itemname="' + item.itemName + '"' + 'data-itemoz="' + item.itemPackSize + '"' + 'data-itemdescription="' + item.itemDescription + '"' + 'data-itemupc="' + item.itemFullUPC + '">' + '<img class="img-responsive img-hover productImagesCategory" src="' + item.imageURL + '">' + '<h3>' + item.itemName + '</h3>' + '</a>' + '</div>'; 
        } 
       }); 
       $('#imagesCategoryProducts').hide().html(categoryImage).fadeIn('slow'); 
       closeNav(); 
      } 
+2

は((item.itemCategory == 5 || item.itemCategory == 6)&& brandLetter == "C" &&フードサービス== "N")場合{ ' – Developer

+0

この'しようとしてみてください作品はありがとう!私は括弧を使用しなければならなかったことを理解していません – Tom

答えて

1

これは、いくつかの理由で破損する可能性があります。ほとんどの場合、正確には何ですか?& &と||ポイント?

それはです:

if ( 
(item.itemCategory == 5 || item.itemCategory == 6) && 
(brandLetter == "C" && foodService == "N")) {} 

またはそれが...

if ( 
item.itemCategory == 5 || 
(item.itemCategory == 6 && brandLetter == "C" && foodService == "N")) {} 

そしてそうです。

解決する必要がある条件を明確にするためにかっこを使用してください。

+0

複数項目比較で括弧を使用することの重要性を認識していませんでした。まだ笑を学んでいる。ありがとう! – Tom

+1

それは簡単です、あなたはそれを得るでしょう。あなたがこれを見たならば、「これと、それ、それ、そして、そして、これ」を、あなたはそれを全部の方法で解釈することができます。 "(これとそれ)または((またはそれ)とこれ))は、何が起こっているのかを明確にします。 –

0

((item.itemCategory == 5 || item.itemCategory == 6) && brandLetter == "C" && foodService == "N") {...