字符串/图像/ID 比较 Javascript
String / Image / ID Comparison Javascript
我在这段代码中比较两张图片或它们的 ID 时遇到问题。我不确定我到底在哪里搞砸了,但肯定有语法错误。我已经尝试了很多比较字符串和 id 的选项。我不确定我的函数或其参数是否错误。
<img alt="" src="blah.jpg" style="height: 276px; width: 200px" id="imgClickAndChange1" onclick="changeImage(this)" />
<img alt="" src="blah.jpg" style="height: 276px; width: 200px" id="imgClickAndChange2" onclick="changeImage(this)" />
<script language="javascript">
function changeImage(imagePass) {
var num = Math.floor((Math.random() * 48) + 1);
var n = num.toString();
var numImg = n.concat(".jpeg");
var string = "/Images/folder/";
var final = string.concat(numImg);
if(imagePass.src === "blah.jpg") {
var num2 = Math.floor((Math.random() * 48) + 1);
var n2 = num2.toString();
var numImg2 = n2.concat(".jpeg");
var final2 = string.concat(numImg2);
if(imagePass.id == "imgClickAndChange1") {
var image = document.getElementById('imgClickAndChange2');
image.src = final;
imagePass.src = final2;
if(image.src == imagePass.src) {
while(image.src == imagePass.src) {
num = Math.floor((Math.random() * 48) + 1);
n = num.toString();
numImg = n.concat(".jpeg");
final = string.concat(numImg);
image.src = final;
}
}
}
} else if(imagePass.id == "imgClickAndChange1") {
var image = document.getElementById('imgClickAndChange2');
image.src = final;
if(image.src == imagePass.src) {
while(image.src == imagePass.src) {
num = Math.floor((Math.random() * 48) + 1);
n = num.toString();
numImg = n.concat(".jpeg");
final = string.concat(numImg):
image.src = final;
}
}
} else if (imagePass.id == "imgClickAndChange2") {
var image = document.getElementById('imgClickAndChange1');
image.src = final;
if(image.src == imagePass.src) {
while(image.src == imagePass.src) {
num = Math.floor((Math.random() * 48) + 1);
n = num.toString();
numImg = n.concat(".jpeg");
final = string.concat(numImg):
image.src = final;
}
}
}
}
</script>
它应该做什么:屏幕上有两个图像。当您单击一个图像时,另一个图像会更改为文件夹中的随机图像。同时检查图像是否不相同。 (一开始屏幕上有两张相同的图片,点击其中一张图片会变成不同的图片。)
---我应该怎么做:
var imagePassed = document.getElementById(imagePass); //?
您最大的问题是语法错误,使用 jslint 之类的工具可以轻松避免这种情况(或者像我一样将您的代码粘贴到那里,或者使用文本编辑器插件)。在这种情况下,罪魁祸首是一些流氓 :
走向底部。
我在此处获得了您的代码的工作副本:https://jsfiddle.net/9Lrjr0zq/
我在这段代码中比较两张图片或它们的 ID 时遇到问题。我不确定我到底在哪里搞砸了,但肯定有语法错误。我已经尝试了很多比较字符串和 id 的选项。我不确定我的函数或其参数是否错误。
<img alt="" src="blah.jpg" style="height: 276px; width: 200px" id="imgClickAndChange1" onclick="changeImage(this)" />
<img alt="" src="blah.jpg" style="height: 276px; width: 200px" id="imgClickAndChange2" onclick="changeImage(this)" />
<script language="javascript">
function changeImage(imagePass) {
var num = Math.floor((Math.random() * 48) + 1);
var n = num.toString();
var numImg = n.concat(".jpeg");
var string = "/Images/folder/";
var final = string.concat(numImg);
if(imagePass.src === "blah.jpg") {
var num2 = Math.floor((Math.random() * 48) + 1);
var n2 = num2.toString();
var numImg2 = n2.concat(".jpeg");
var final2 = string.concat(numImg2);
if(imagePass.id == "imgClickAndChange1") {
var image = document.getElementById('imgClickAndChange2');
image.src = final;
imagePass.src = final2;
if(image.src == imagePass.src) {
while(image.src == imagePass.src) {
num = Math.floor((Math.random() * 48) + 1);
n = num.toString();
numImg = n.concat(".jpeg");
final = string.concat(numImg);
image.src = final;
}
}
}
} else if(imagePass.id == "imgClickAndChange1") {
var image = document.getElementById('imgClickAndChange2');
image.src = final;
if(image.src == imagePass.src) {
while(image.src == imagePass.src) {
num = Math.floor((Math.random() * 48) + 1);
n = num.toString();
numImg = n.concat(".jpeg");
final = string.concat(numImg):
image.src = final;
}
}
} else if (imagePass.id == "imgClickAndChange2") {
var image = document.getElementById('imgClickAndChange1');
image.src = final;
if(image.src == imagePass.src) {
while(image.src == imagePass.src) {
num = Math.floor((Math.random() * 48) + 1);
n = num.toString();
numImg = n.concat(".jpeg");
final = string.concat(numImg):
image.src = final;
}
}
}
}
</script>
它应该做什么:屏幕上有两个图像。当您单击一个图像时,另一个图像会更改为文件夹中的随机图像。同时检查图像是否不相同。 (一开始屏幕上有两张相同的图片,点击其中一张图片会变成不同的图片。)
---我应该怎么做:
var imagePassed = document.getElementById(imagePass); //?
您最大的问题是语法错误,使用 jslint 之类的工具可以轻松避免这种情况(或者像我一样将您的代码粘贴到那里,或者使用文本编辑器插件)。在这种情况下,罪魁祸首是一些流氓 :
走向底部。
我在此处获得了您的代码的工作副本:https://jsfiddle.net/9Lrjr0zq/