Javascript 单击img src路径的replace/segment/替换为多个值之一

Javascript 单击img src路径的replace/segment/替换为多个值之一,javascript,Javascript,不知道我在做什么,也不知道为什么它不起作用。显然没有使用正确的方法,也可能不会使用正确的语言来解释问题 照片库。。。正在尝试创建一个html页面。。。它有图像链接。。。页面上的按钮“aim to”通过查找路径中当前的名称并将其替换为与用户单击的按钮对应的库名称来修改图像的路径 例如: GALLERY2go : function(e) { if(GalleryID!="landscapes") { var find = ''+ findGalleryID()+''; var

不知道我在做什么,也不知道为什么它不起作用。显然没有使用正确的方法,也可能不会使用正确的语言来解释问题

照片库。。。正在尝试创建一个html页面。。。它有图像链接。。。页面上的按钮“aim to”通过查找路径中当前的名称并将其替换为与用户单击的按钮对应的库名称来修改图像的路径

例如:

GALLERY2go : function(e) {
  if(GalleryID!="landscapes")
  {
    var find = ''+ findGalleryID()+'';
    var repl = "landscapes";
    var page = document.body.innerHTML;
    while (page.indexOf(find) >= 0) {
      var i = page.indexOf(find);
      var j = find.length;
      page = page.substr(0,i) + repl + page.substr(i+j);
      document.body.innerHTML = page;
      var GalleryID = "landscapes";
    }
  }
},
页面上方有一个函数,用于获取var find并获取var GalleryID的值:

var GalleryID = "portfolio";

function findGalleryID() { 
  return GalleryID
}
显然,第一个varGalleryID是global的,它是用来设置一个默认值的,如果我能够找到一种在onLoad中引用它的方法,那么函数中的一个在我读了很多的函数末尾被清除。但我不知道这意味着什么

考虑到代码的脆弱性或其他荒谬性,该代码实际上改变了html页面中所有的图像链接和所有其他称为portfolio的内容-因此portfolio变成了风景。。。图像的路径会更改,并且它们都会更新。。。作为一名JavaScript初学者,我非常高兴地看到它能够工作。但你不能点击另一个gallery按钮,因为它卡在某种循环中。事实上,在你点击按钮之后,你就不能点击其他任何东西了,剩下的JavaScript功能都被破坏了。也许我引入了某种循环,它永远不会退出。如果你在公文包中点击公文包,浏览器就会崩溃!无论如何,我很清楚“我的拼凑解决方案”不是一个有编写代码经验的人会怎么做。他们可能会用另一个名字,花上一辈子的时间来学习。我认为我不能使用getElement by并引用类/id名称和解析文件名[使用许多我根本不懂的单词],因为这会影响脚本的其他部分。我曾尝试使用div包装器和代码来启动一个子html文档,该文档不需要处理现有内容或与样式表对话。我完全迷路了,甚至不知道下一步该从哪里开始寻找


关键是。。。这里有一个请求。。。若你们中有人回复了,我担心你们会在回复时不会假设你们正在和一个根本不知道AJAX、JQuery和PHP是什么的人交谈。。。我搜索过论坛;我不明白他们的意思。请记住这一点。

我将尝试一下更新您的函数。我认识到,对现有代码的批评可能不会帮助您解决问题

var currentGallery = 'landscape';
    function ChangeGallery(name) {
        var imgs = document.getElementsByTagName("img") // get all the img tags on the page
        for (var i = 0; i < imgs.length; i++) {         // loop through them
            if (imgs[i].src.indexOf(currentGallery) >= 0) {     // if this img tag's src contains the current gallery
                imgs[i].src = imgs[i].src.replace(currentGallery, name);
            }
        }
        currentGallery = name;
    }
至于我为什么要这么做,你是对的,变量的范围是正确的,不管是整个页面,还是只有给定的函数知道它,都混合在给定的代码中。然而,另一个潜在的问题是,如果用“公文包”替换html中所有显示“景观”的内容,则可能会更改非图像。此代码仅查找图像,然后仅当src包含给定关键字时才替换它