场景需求:
例如有一些需求是当鼠标移入容器时,容器里的图片需要换成悬停时的图片,然后比较死板的写法,如下:
明明代码之间差不多,只是在.png前面多加了个_hover表示悬停而已,代码冗余繁琐的要死,我们干嘛不直接用js控制呢?那就用正则吧。
<body>
<div class="img">
<img src="gongan@2x.png" alt="">
</div>
</body>
hoverImg();
function hoverImg() {
var hoverUrl;
var index;
var url;
$(".img img").hover(function () {
var re = /.png$/;
if (!index && !url) {
url = $(this).attr("src");
index = url.match(re).index;
}
var subUrl = url.substring(0, index);
hoverUrl = url.replace(url, subUrl + '_hover.png')
$(this).attr("src", hoverUrl)
}, function () {
$(this).attr("src", url)
})
}
执行上面的操作之后,我们只需要改一下文件名,在后面加_hover就完事。哪有那么多为什么鸭,嘻嘻~~