Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用img src链接替换页面的每一次点击?_Javascript_Jquery_Greasemonkey - Fatal编程技术网

Javascript 用img src链接替换页面的每一次点击?

Javascript 用img src链接替换页面的每一次点击?,javascript,jquery,greasemonkey,Javascript,Jquery,Greasemonkey,我使用一个网页,我想用每个链接包含的修改后的src链接替换一堆链接的onclicks 例如,Greasemonkey脚本应更改以下内容: 但是正确的图片没有链接。我想你可以试试这样的东西 var link = $("p.listphotos a img").prop("src").replace("min", "max"); $("p.listphotos a").prop("onclick", link); $("p.listphotos a").prop("href", link); 然

我使用一个网页,我想用
每个链接包含的修改后的
src
链接替换一堆链接的
onclick
s

例如,Greasemonkey脚本应更改以下内容:


但是正确的图片没有链接。

我想你可以试试这样的东西

var link = $("p.listphotos a img").prop("src").replace("min", "max");

$("p.listphotos a").prop("onclick", link);
$("p.listphotos a").prop("href", link);
然后

function showImage(){
     if (changeIndex(numberClick)){
        numberClick+=1;
     }
     else{
        numberClick=0;
     }
}

onclick
设置为链接是错误的
onclick
必须是有效的javascript。但是,由于看起来您正试图“断开”这些照片的链接,因此最好将
onclick
s一起删除

另外,您不能这样设置
href
(除非您希望每个链接都指向同一张照片)。你需要循环。jQuery的
.each()
应该可以做到这一点。像这样:

$("p.listphotos a img").click(function(){
   showImage();
   return false;
 });


请注意。但是,如果在某些浏览器中检查页面源代码,该属性仍将存在。别担心,
onclick
将不再起作用。

我认为使用类将是最好的解决方案,给它们一个按钮类或类似的东西,在jQuery中,所有的工作都来自于特定的类。
var numberClick=0;
var Images= ['image1.png','image2.png'];

function changeIndex(index){
   if (index >=0 && index < Images.length){   
      $("p.listphotos a img").attr("src", Images[index]);
      return true;
   }
   return false;
}
function showImage(){
     if (changeIndex(numberClick)){
        numberClick+=1;
     }
     else{
        numberClick=0;
     }
}
$("p.listphotos a img").click(function(){
   showImage();
   return false;
 });
$("p.listphotos a img").each ( function () {
    //-- `this` is each target image, one at a time
    var jThis   = $(this);
    //-- More robust replace
    var bigLink = jThis.prop ("src").replace (/\bmin\b/i, "max");

    //-- The img parent is the link we're after.
    jThis.parent ().prop ("href", bigLink).removeProp ("onclick");
} );