on单击用多个值中的一个替换img src路径的/sgment/

onClick replace /segment/ of img src path with one of number of values

本文关键字:替换 一个 sgment img src 路径 单击 on      更新时间:2023-09-26

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

照片库。。。正在尝试使用单个html页面。。。它有图像链接。。。页面上的按钮"旨在"修改图像的路径,方法是找到路径中当前的名称,并将其替换为用户点击的按钮对应的图库名称…

示例:

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是全局的(如果我能在Load中找到引用它的方法,它就可以设置一个默认值),函数内部的那个在函数末尾被清除(我读过很多)。但我不知道这意味着什么。

考虑到它的脆弱性或其他荒谬性,该代码实际上确实改变了html页面中的所有图像链接(以及所有其他被称为"公文包"的内容),因此"公文包"变成了"风景"。。。图像的路径发生了变化,它们都更新了。。。作为一个JavaScript初学者,我很高兴看到它的工作。但你不能点击另一个图库按钮,因为它陷入了某种循环。事实上,在你点击按钮后,你就不能点击其他任何东西,JavaScript的所有其他功能都被窃听了。也许我引入了某种循环,它永远不会退出。如果你在投资组合中点击投资组合,你会崩溃浏览器!无论如何,我很清楚,"我拼凑的解决方案"不是一个有任何代码编写经验的人所能做到的。他们可能会用另一个不同名字的东西来学习。我不认为我可以通过使用getElement并引用类/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包含给定的关键字时才替换它。