2013-04-22 27 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; 
}