Javascript图像交换是't工作
Javascript image swap isn't working
这是我尝试用javascript做的第一件事,我不知道为什么它不起作用。目标是简单地在点击事件中来回交换图像。我想知道这是否是我的相关链接不起作用的问题。我直接从这个网站上找到的另一个答案中复制了代码,所以错误可能很小。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script type="text/javascript">
function swap248(){
if(document.getElementById("normal248").src=="images/248img1.png"){
document.getElementById("normal248").src="images/248img2.png";
}else if(document.getElementById("normal248").src=="images/248img2.png"){
document.getElementById("normal248").src = "images/248img1.png";
}
}
</script>
</head>
<body>
<img id="normal248" onclick="swap248()" src="images/248img1.png" width="294" height="461" alt=""/>
</body>
</html>
src
属性读取完整URL。相反,您可以维护一个变量,以便在两个图像之间进行交换。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script type="text/javascript">
var isFirstImage = true; // by default first image is shown
function swap248(){
if(isFirstImage){ // shows second image
document.getElementById("normal248").src = "images/248img1.png";
isFirstImage = false;
} else { // shows first image
document.getElementById("normal248").src="images/248img2.png";
isFirstImage = true;
}
}
</script>
</head>
<body>
<img id="normal248" onclick="swap248()" src="images/248img1.png" width="294" height="461" alt=""/>
</body>
</html>
注意:它只适用于非常基本的级别。如果您有多个图像要交换,您可以将其维护在当前可见图像的元素的data
(而不是变量)属性中。
首先,您应该使用css来交换图像
在这种情况下,您甚至不需要javascript。
如果你愿意,我可以给你举个例子。。。
如果你想使用javascript,这里是你的函数,但更短
假设您的默认图像是images/248img1.png
function swap248() {
var a = document.getElementById("normal248");
a.x = '248img2' == a.x ? '248img1' : '248img2'; // short if
a.src ='images/' + a.x + '.png';
}
这是如何工作的
javascript中的每个元素都是一个对象。
因此,您可以向该对象添加变量。
在这种情况下,由于x未定义,第一次检查失败。
所以它返回false,并给出第二个图像。
在下一个检查中,x被设置为第二个图像,并且它返回第一个图像。。
删除</html>
后的"在此处输入代码"
您可以尝试测试url的最后一部分,如下所示:
function swap248(){
if(document.getElementById("normal248").src.match(/images'/248img1.png$/g){
document.getElementById("normal248").src="images/248img2.png";
}else if(document.getElementById("normal248").src.match(/images'/248img2.png$/g){
document.getElementById("normal248").src = "images/248img1.png";
}
}
注意:您需要转义匹配模式中的/
字符。
并在末尾添加一个CCD_ 6以验证它是src的末尾。(即:.match(/images'/248img2.png$/g)
)
编辑:
您可以尝试:.match(/t'/[0-9]{3}img1.png$/g)
[0-9]
表示您正在搜索数字,{3}
表示字符串在"img1"之前必须有3个数字才能匹配。
相关文章:
- 引导程序转盘不工作:堆叠图像(使用rails)
- 单击水平滚动库中的图像以居中显示无法工作的功能
- 图像翻转脚本未按预期工作
- 在页面中使用了两次多个图像上传,但第一个正在工作,另一个不起作用
- JQuery图像预览无法工作
- 弹出图像无法使用jquery在html中工作
- JQuery图像滑块和CSS转换只能工作一次
- 卷轴上的视差图像和粘滞标题无法正常工作
- 图像占位符没有't的工作原理与Angular 1中的相同
- 图像看起来像一个只在firefox中工作的按钮
- flexislider无法在现场工作,图像没有旋转,但导航点正在改变
- 更改图像src-dons't工作jquery/js
- JQuery图像大小计算没有'不能在Chrome/Safari中工作
- Fancybox图像点击可以独立工作,但不能与我的其他代码一起工作
- 谷歌图书预览没有在安全的https上显示图书图像链接,但在http上工作.在Google Chrome和Touch浏览器
- Elastislide-如何使其在不同的图像宽度下工作
- Jquery只有在加载图像后才能使fadeIn工作
- 在执行 h:命令链接操作时显示工作图像
- 为什么这个jQuery不能工作?图像淡出和淡出
- Flexslider-如何使用单个方向Nav使两个滑块一起工作(图像和段落文本)