我有 10 个按钮,每个按钮都有不同的图像和文本。我有每个按钮可以单击开/关,如果单击另一个按钮,我希望事件按钮关闭。我正在与后者作斗争。
var x = 300;
//port1
$('#port1').click(
function(){
var src = $('.image', this).attr('src');
//var srcs = $(this).attr('src');
if($(this).hasClass("highlight")) {
$('.butt').removeClass('highlight');
$('.image', this).attr('src', src.replace(/_dark(\.[^.]+)?$/, '_light$1'));
$('.p1').fadeOut(x);
}
else{
$('.butt').removeClass('highlight');
// $('.butt').attr('src').replace('_dark.png', '_light.png');
$('.butt img').each(function() {
var src2 = $('.image').attr('src').replace(/_dark(\.[^.]+)?$/, '_light$1');
$('.image').attr('src', src2);
});
$('.talk').fadeOut(x);
$(this).addClass('highlight');
$('.image', this).attr('src', src.replace(/_light(\.[^.]+)?$/, '_dark$1'));
$('.p0').fadeOut(x);
$('.p1').fadeIn(x);
}
});
我遇到的问题是,当我单击该按钮时,它会将所有其他按钮上的 src 更改为与该按钮完全相同,而不仅仅是将其他源上的结尾更改为“_dark”。我认为添加这个“每个”功能会有所帮助,但事实并非如此。
编辑:我是编码新手,但我尝试了一个 jsfiddle:http://jsfiddle.net/messedUP90/yxjoxe41/ 出现的随机计算机是我想要的效果和我编写的代码,然后我记得每个图标都会有所不同。查看第一个标题为“un”的按钮,了解我所说的错误发生的位置。
最佳答案
http://jsfiddle.net/gtf1dk0m/1/
需要重新设置变量src。
这段代码是这样做的:
$('.butt').each( function( index ) {
if ( $(this).attr('src') ) {
$(this).attr('src', $(this).attr('src').replace(/_dark(\.[^.]+)?$/, '_light$1'));
}
});
忽略图像在 jsfiddle 中不会改变颜色的事实。它适用于 Dreamweaver。 :)
关于javascript - 替换多个 img src 上的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26807259/