jQuery没有选择每个图像

时间:2014-01-06 15:59:48

标签: javascript jquery userscripts

我目前正在为论坛制作用户脚本,但它似乎不起作用。 论坛有两个主题,我想用新主题替换旧主题中的用户栏(位于/groupimages/)。

我正在尝试这个:

$("img[src*='/groupimages/']").each(function() {
    $(this).attr("src", $(this).attr("src").replace("/modern_pl/", "/blackreign/"));
});

/modern_pl/是新主题的目录,旧主题的/blackreign/。 图片的示例网址是/images/modern_pl/groupimages/english/strange.gif

它会选择一些图片,但不是全部。它似乎突然停止,而没有在Chromes JS-Console中发出任何错误消息。 让我们说strange.gif在页面上有3次,它只替换一次。其他一些图片(因为源包含/groupimages/而应该被选中)完全被忽略,所以我怀疑这是否发生,因为一张图片不止一次。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

对我而言,这个片段看起来不错。

您是否将其放入文档就绪功能中?如果没有,问题可能是脚本运行时图片尚未加载。

试试这个:

$(function(){
    $("img[src*='/groupimages/']").each(function() {
        $(this).attr("src", $(this).attr("src").replace("/modern_pl/", "/blackreign/"));
    });
});

<强>更新

当您呈现的代码工作时很难提供帮助..但是我们假设在完全加载页面后,ajax会加载内容。 你可以这样做..这根本不好......但假设你没有进一步访问网站上的代码,试试这个:

setTimeout(function(){
    $("img[src*='/groupimages/']").each(function() {
        $(this).attr("src", $(this).attr("src").replace("/modern_pl/", "/blackreign/"));
    });
},1000);

在运行代码之前,等待一秒钟才能加载其他脚本。

答案 1 :(得分:0)

那样的东西?

var img = $( 'img' );
img.attr( 'src', img.attr( 'src' ).replace( "\/groupimages\/", "\/modern_pl\/") );