2013-05-18 30 views
-1

我在我的节目(在Dreamweaver运行)这条线是以下内容:如何为特定的图像源创建if语句?

function go() { 
if((document.test.test1.src == document.test.test2.src && document.test.test2.src == document.test.test3.src)) 

...... 
...... 
..... 
} 

此功能时,我有3个不同的图像,其运行时或者在页面三个彼此相等的。但是,我将如何让它指定哪些图像相互平等,而不是仅仅执行三者中的任何一个。

例如,如果一个图像的标题为'x',如果所有三个test1,test2,test的值都是'x',它将运行该函数并显示此消息,但是,它会显示其他图像的相同消息(如果所有平等的'y')Id喜欢以某种方式分开的消息。

回答

0

我比较与当前图像元素作为参数分离,以一个单独的函数,并使用该方法用不同的图像对象:

function compare(imgElem){ 
    if((document.test.test1.src == document.test.test2.src && document.test.test2.src == document.test.test3.src)) 
    console.log(imgElem.id,"triggered"); 
    // or something else 
    } 
} 

compare(document.test.test1); 
compare(document.test.test2); 
compare(document.test.test3); 

然而溶液可能取决于您比较的元素数量不准确。对于大量元素,请尝试使用地图。

1

里面你if声明,你可以放置一个switch/case块,以测试它的哪个图像“X”,“Y”等,这不要紧,你检查哪个图像的src,因为你已经检查他们都是平等的。

if((document.test.test1.src == document.test.test2.src && document.test.test2.src == document.test.test3.src)) 
    switch (document.test.test1.src) { 
     case "x": 
      // Do stuff 
      break; 
     case "y": 
      // Do other stuff 
      break; 
    } 
1

如果我的理解正确,在您的代码中您可以添加一个开关,例如

switch (document.test.test1.src) { 
     case 'y': 
     ........ 
     break; 
     case 'x' 
     ........ 
     break; 
} 

“........”指定要运行什么,如果对象分别等于y或x。

0

这应该是相当简单的实现

var a=document.test.test1.src; 
var b=document.test.test2.src; 
var c=document.test.test3.src 

var fn: { 
    x: function() { alert(messageX); }, 
    y: function() { alert(messageY); }, 
    z: function() { alert(messageZ);} 
}; 

if(a==b && b==c) { 
    if(fn.hasOwnProperty(a)) { 
     fn[a](); //you can also use 'b' or 'c' since they're all equal 
    } 
}