我的程序中有这一行(在Dreamweaver中运行),如下所示:
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')我想以某种方式拥有单独的消息。
答案 0 :(得分: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 :(得分:1)
如果我理解正确,您可以在代码中添加一个开关,例如
switch (document.test.test1.src) {
case 'y':
........
break;
case 'x'
........
break;
}
“........”表示如果对象分别等于y或x,你想要运行什么。
答案 2 :(得分: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);
然而解决方案可能不准确,具体取决于您要比较的元素数量。对于大量元素,请尝试使用地图。
答案 3 :(得分: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
}
}