onClick使用多个值之一替换/ segment / of img src路径

时间:2012-03-15 22:26:43

标签: javascript

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

Photogallery ...试图拥有一个单独的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是全局的(如果我能找到一种在onLoad上引用它的方法,那么设置一个默认值)并且在函数结束时清除函数内的一个(I我读过那么多)。但我不知道这意味着什么。

代码,由于它的弱点或其他荒谬,实际上确实改变了html页面中的所有图像链接(以及绝对所有其他称为“组合”) - 因此“投资组合”变成“风景”......图像发生了变化,它们都更新了...作为一个JavaScript初学者,我很高兴看到它有效。但是你不能点击另一个图库按钮,因为它被卡在某种循环中。事实上,在您单击该按钮后,您无法单击其他任何内容,并且所有其他JavaScript功能都会被错误处理。也许我已经介绍了它永远不会退出的某种循环。如果您在投资组合中点击投资组合,则会导致浏览器崩溃!无论如何,我很清楚“我的拼凑解决方案”并不是具有编写代码经验的人所能做到的。他们可能会使用其他具有不同名称的东西来进行另一次学习。我不认为我可以使用getElement并且引用类/ id名称并解析文件名[使用许多我根本不理解的单词],因为它对脚本的其他部分有影响。我已经尝试使用div包装器和代码来启动子html文档,并且在没有处理现有内容或与样式表交谈的情况下进入。我迷失了,甚至不知道从哪里开始寻找下一个。

重点是......这是一个请求...如果你们中的任何一个人做出回复,我担心你们会在没有假设你正在与一个真正无法理解AJAX的人交谈的情况下回复和JQuery和PHP是......我搜索了论坛;我不明白他们。请记住这一点。

1 个答案:

答案 0 :(得分:0)

我会稍微更新你的功能。我认识到对代码的批评可能不会帮助你解决问题。

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。

相关问题