2016-09-02 8 views
0

次のスクリプトを使用して、ページ上にあるすべてのimgソースを調べて、拡張子を取得します。返された文字列がないか、イメージタイプがわからない場合は追加します.jpgイメージの拡張子がない場合に追加する

何らかの理由により、if文は拡張子に関係なく毎回trueです。

$(document).ready(function() {   
$(".main_img").each(function() { 
     imgsrc = this.src; 
     console.log(imgsrc); 
     imgext = imgsrc.split('.').pop(); 
     $.trim(imgext); 
     console.log(imgext); 
      if(imgext != 'jpg' || imgext != 'jpeg' || imgext != 'gif'){ 
      console.log("Unacceptable,add extension"); 
      FinalURL = imgsrc + '.jpg'; 
     } 
      else { 
      console.log(imgext); 
     } 
    }); 
}); 
+0

実行可能なデモ/スニペットや[JSFiddle](https://jsfiddle.net/)を共有できますか? [最小限で完全で検証可能な例を作成する_ _](http://stackoverflow.com/help/mcve) – Rayon

+0

ログにはimgextの値は何ですか? – Pat

+0

ログは拡張子を出力します(例:jpg – wadie

答えて

1

コードの不具合を修正します。

OR条件をAND条件に変更するだけで問題ありません。これに

if(imgext != 'jpg' || imgext != 'jpeg' || imgext != 'gif') 

:この部分

変更

if(imgext != 'jpg' && imgext != 'jpeg' && imgext != 'gif') 

それは働いていませんでした提案として使用してOR条件ときimgextは、常にこのような場合には同時に3つの異なった値と等しくないだろうので、 。したがって、それは常に実現するでしょう。 ANDを使用すると、3つの値のいずれかの値と等しくない場合にのみ受け入れられます。うまくいくはずです。

+0

)。私のアプローチは意図どおりに機能していないのですか?編集:うん、明らかに私のロジックは正確ではなかった..:/ thx! – wadie

+0

とにかく説明を追加しました:) –

+0

はい1)imgetxt = txtよりも 'if'の値が' true ||真実|| true = true' 2)imgext = jpgなら 'false ||真実||真=真 'である。結果は常に「真」です。 2つの条件で '!='を使用する場合は、ほとんどが 'AND'演算子を使用する必要があります。 – Vijai

関連する問題