2011-02-06 17 views
0

問題:いつでも、私は単一の '='変数が表示され、正常になりますが、if文を完全に無視します。私はダブル '==' ..だけを行う場合、変数が表示されないと、それはelseの状態になります。あなたは何かが間違っているかどうかを知っている。ここif文with img.src

var pic1 = document.getElementById('team1pic').src; 
var win1 = document.getElementById('wins').innerHTML; 
if (pic1 == 'pens.jpg') { 
    document.getElementById('wins').innerHTML = PittWins; 
} else { 
    document.getElementById('wins').innerHTML = 'no'; 
} 

は私が

<a class="dock-item" id="pens" href="#" onclick="document.getElementById('team1pic').src='pens.jpg'"><span>Pittsburgh Penguins</span><img src="pens.jpg" alt="Pittsburgh Penguins" /></a>` 

、その後

<th width="35%" ><img src=""/id='team1pic'></th> 

答えて

1

これが添付されているHTMLを見てうれしいです。

単一の=が機能するが、==が機能する理由は、それらが等しくないという結論を指摘しない。 =の理由は、割り当てがtrueと評価されるためです。これは、あなたが "truthy"という変数に代入するものの場合に当てはまります。つまり、値がJSで真と評価されることを意味します。 javascriptではすべてが0falsenull & undefinedと評価されています。

そこに何が入っているのかを確認するには、alert(pic1)を実行するか、FirefoxまたはChromeを使用している場合は、Javascriptデバッガーツールを使用できます。

+0

pic1の警告は何らかの理由で文書のURLを出しますか?私はteam1picがonclickを変更するように設定しているので、それはそのクリックまで定義されていません – Shawn

1

より良いを持っていることをそれと一緒に行くためにいくつかのHTMLです:

var s = document.getElementById('team1pic').src, 
    w = document.getElementById('wins'); 

w.innerHTML = s == 'pens.jpg' ? PittWins : 'no'; 

私はPittWinsがあることを前提としてい変数。

+0

私は今いくつかの結果を取得しています。私はdocument.getElementById( 'team1pic')。srcは別のイメージにonclickを変更するように設定しました。画像は正しい場所に現れていますが、それでも結果は得られません。私は多くのコードで答えを更新します – Shawn

2

ifの前にalert(pic1)を実行してください。

唯一の「問題」は、pic1'pens.jpg'と等しくないことです。代入演算子=と置き換えると、'pens.jpg'(常にtrue)と評価される式が得られるので、常に最初の分岐が実行されます。

1

使用

var pic1 = document.getElementById('team1pic').getAttribute('src',2); 

...それは完全なパスを定義していないようにSRCを取得します。

+0

まだそれはトリックをするだろうそれのように見えるが行く。私は完全な名前のパスに文を設定する必要があります。私が学んでいる面白いことは、onclickが起こる前に 'いいえ'(else文)が出てくるということです。 ifとonclicksを一緒にするより良い方法がありますか? – Shawn

+0

PittWinsとは何ですか?それは変数ですか? –