Jquery替换为正则表达式:用另一个属性替换SRC中的属性

时间:2012-02-24 17:36:42

标签: jquery replace find src

我正在使用加载图片地图的Google静态地图:

<img src="http://maps.google.com/maps/api/....&someparameter&someparameter&scale=1">

注意最后的"scale=1"参数。我只需要在带有WebKit的高密度显示器上用"scale=2"替换它,以便从Google加载高分辨率版本。

我在DOM加载时使用这个查找/替换脚本的条件,它不起作用。 window.devicePixelRatio在WebKit中工作(已测试);但if条件中的函数可能有问题。

$(function()
    {
        if (window.devicePixelRatio >= 1.5)
        {
            $('img[src*="scale=1"]').each(function() {
                var newSrc = $(this).attr('src');
                newStr = newSrc.replace('/scale=1/','scale=2');
                $(this).attr('src', newSrc);
            });
        }
        else
        {
        }   
    });    

感谢您的建议!

2 个答案:

答案 0 :(得分:4)

.replace()接受一个RegExp或一个字符串,你给它一个看起来像RegExp的字符串:

newStr = newSrc.replace('scale=1','scale=2');

答案 1 :(得分:4)

看起来您正在获取src属性值,将其存储到名为newSrc的变量中,然后替换scale=1并将结果存储在newStr中,那么您是将图片的src属性设置为原始值newSrc吗?

不应该是:

$('img[src*="scale=1"]').each(function() {
    var newSrc = $(this).attr('src');
    newSrc = newSrc.replace('scale=1','scale=2');
    $(this).attr('src', newSrc);
});