2013-04-22 28 views
1

我試圖在搜索imgNumber變量後使用If/Else語句在屏幕上編寫某些文本。出於某種原因,無論文本是否包含在imgNumber變量中,它只會寫入字符串'蟑螂'。JavaScript - 如何在If/Else語句中提取字符串

此外,imgNumber是一個隨機字符串(它將始終是myImages變量中的一個字符串)。

我在這裏錯過了什麼?

<script type="text/javascript"> 

function changeImg(imgNumber) { 
var myImages = ["images/homepage/homepage-header.jpg", "images/homepage/homepage-header-3.jpg", "images/homepage/homepage-header-5.jpg"]; 
var imgShown = document.body.style.backgroundImage; 
var newImgNumber =Math.floor(Math.random()*myImages.length); 
document.body.style.backgroundImage = 'url('+myImages[newImgNumber]+')'; 

var imgNumber = myImages[newImgNumber]; 

if (imgNumber = "images/homepage/homepage-header-5.jpg") 
    { 
    document.write('cockroaches'); 
    } 
else if (imgNumber = "images/homepage/homepage-header-3.jpg") 
    { 
    document.write('ants'); 
    } 
else 
    { 
    document.write('termites'); 
    } 

var n=myImages.indexOf("images/homepage/homepage-header-5.jpg"); 
document.write(n); 

} 
window.onload=changeImg; 
</script> 

回答

4

if條件是錯誤的,你需要使用2等號比較。所以說:=== 你在做什麼在那裏是字符串的值賦給你imgNumber變量...

您可以找到有關這對MDN

+0

甜蜜!謝謝!我覺得自己就像個美人! – 2013-04-22 21:18:35

+0

Nah,這是一個常見的小監督,我敢肯定它已經發生在我們所有人至少一次... – DarkAjax 2013-04-22 21:19:20

0

使用=更多信息被分配值。對值進行比較,你需要==

+0

謝謝你!欣賞快速反應 – 2013-04-22 21:19:04

0

1)像以前一樣回答,使用== 2)今後,使用更正確的變體:

var imgNumber = Number("a4r t 4r43 43a b345b 123 cc gaeg4".replace(/\D+/g,"")); 
switch (imgNumber) { 
case 0: 
    // code here 
break; 
case 1: 
    // code here 
break; 
default: 
    // code here 
break; 
}