2013-02-20 56 views
1

的评估变量我有下面的代码中,我想EVAL串联,然后检查是否它定义与否,我无法检查是否未定义

var image1="images/pic1.png"; 
var image2="images/pic2.png"; 
var image3="images/pic3.png"; 
var image4="images/pic4.png"; 
/* 
var image5=""; 
var image6=""; 
var image7=""; 
var image8=""; 
var image9=""; 
var image10=""; 
var image11=""; 
var image12=""; 
*/ 

var imageLink; 
var count=12; 

for (i=0;i<count;i++){ 

    var imageLink=eval("image"+(i+1)); 

    if (typeof imageLink === "undefined"){ 
     alert("imageLink is undefined"); 
     imageLink=""; 
    } 

所以最后一块不工作。

+1

只需使用数组。这里的'eval'是有问题的编码。这段代码的一个问题是它会抛出一个ReferenceError。比较'x'和'window.x',其中'x'没有被设置(并且有很多重复的东西)。 – 2013-02-20 11:14:58

+0

无论你在代码中使用'eval',你应该完全重写那段代码,而不是试图解决发生的问题。 – Christoph 2013-02-20 11:17:54

回答

0
var images = []; 

images.push('images/pic1.png'); 
images.push('images/pic2.png'); 
images.push('images/pic3.png'); 
images.push('images/pic4.png'); 

var imageLink = ''; 

for (i=0; i<images.length; i++){ 

    imageLink = images[ i ]; 

    if (!imageLink){ 
     alert('imageLink is undefined'); 
     imageLink = ''; 
    } 
} 

在评论建议,把数据的数组,然后循环各元素的,这样一来你的代码变得更清洁,你不必做一个eval。

+0

Muchos gracias :) – 2013-02-20 11:51:40

+0

没问题,PS:确实接受的答案是正确的,我注意到你以前的问题也没有被接受的答案:) – 2013-02-20 12:18:57

相关问题