我目前正在为论坛制作用户脚本,但它似乎不起作用。
论坛有两个主题,我想用新主题替换旧主题中的用户栏(位于/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/
而应该被选中)完全被忽略,所以我怀疑这是否发生,因为一张图片不止一次。
有什么想法吗?
答案 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\/") );