如何使用jquery为一组图像将img src字符串从_m结尾更改为_t
我希望在正确的方向上有一个很好的推动我想改变我的图像源字符串的结尾…我希望我措辞正确。
无论如何,我目前的src正在阅读:
我想将其更改为:
任何想法的人……谢谢!
这个更安全一点:
$('img').each(function () { var src = $(this).attr('src'); $(this).attr('src', src.replace(/_m(\.[^.]+)?$/, '_t$1'); });
否则,当使用eKek0的答案时,你可能会冒像/bat_man/images/oh_my_god_m.png
这样的url最终成为/bat_tan/images/oh_my_god_m.png
。
正则表达式/_m(\.[^.]+)?$/
说明:
-
/.../
只是模式边框。 -
_m
匹配文字_m
。 -
(...)
匹配分组,第一个结果为$1
。 -
\.
匹配文字.
。 因为.
是正则表达式中的一个特殊字符,它被\
逃脱了。 -
[...]
代表一组角色。 -
^.
匹配除了文字之外的一切.
。 因为它在一个组内,所以不需要转义。 -
+
匹配一个或多个字符。 -
?
以前的组是可选的(对于没有文件扩展名的情况)。 -
$
match必须出现在字符串的末尾(因此不在中间或左右)。
$(img).each(function () { var src = $(this).attr('src'); $(this).attr('src', src.replace("_m", "_t"); });
在这一个上不需要jQuery:
function argsToArray(args) { var r = []; for (var i = 0; i < args.length; i++) r.push(args[i]); return r; } argsToArray(document.getElementsByTagName('img')).forEach(function(img) { img.src = img.src.split('_m').join('_t'); });
我没有测试过,但这应该有效:
$('img').each(function () { var src = $(this).attr('src'); $(this).attr('src', src.replace(/_m\.(png|jpg|jpeg|gif)$/, '_t.$1')); });
img.src = "
从DOM搜索img
变量,如下所示: document.getElementByTagName('img')[0]
或者: document.getElementById('image')
(如果 ),了解HTML DOM来做到这一点。