2009-08-17 73 views
0

我得到了一个链接的生成列表,其中每个链接都有一个唯一的id(编号)和一个名为“load”的类。jQuery更改链接点击图片(与ID中的相同编号匹配)

我想在页面的另一面更换一张图片,其id与我单击的链接中的编号相同。由于id上的元素是独一无二的,我添加了folderid [number] infront的所有图像

这就是我到目前为止(不工作)。我不知道这是否是甚至接近正确的,但感觉它:)

$(function(){ 
    $(".load").click(function(){ 
     var element = $(this); 
     var link_id = element.attr("id"); 
     alert(link_id); 
     $("#folderid", link_id).attr("src", "img/folder_open.gif") 
    }); 
}); 

我的图片和链接看起来像这样的代码:

<img src="img/folder.gif" id="folderid5" class="img_folder" alt="Folder"/> 
<a href="#" id="5" class="load img_id5"> 

感谢

回答

2

它看起来像你的意思是选择

$('#folderid' + link_id).attr(...) 
+0

谢谢!这是语法... – 2009-08-17 21:11:17

0

如果你的意思是你的形象有自己的ID作为添加分号(;) :

folderid [1],folderid [2],等等

的 '[' 字符可能是posin g与jQuery有关的问题。你可以尝试逃跑,并使用:

$("img#folderid\\["+link_id+"\\]").attr("src", "img/folder_open.gif"); 

我还没有需要之前转义jQuery中的人物,因为我可以简单地改变我的命名惯例,但我相信上面的应该工作。

另一种方法去将是从ID和使用中的括号去掉:

$("img#folderid"+link_id).attr("src", "img/folder_open.gif"); 
0

你接近。您需要将id连接到图像的选择器上,而不是使用逗号。试试这个代码:

$(function(){ 
    $(".load").click(function(){ 
     var element = $(this); 
     var link_id = element.attr("id"); 
     alert(link_id); 
     $("#folderid" + link_id).attr("src", "img/folder_open.gif") 
    }); 
}); 
0

我认为你需要一个+不是,在这条线:

$("#folderid", link_id).attr("src", "img/folder_open.gif") 

$("#folderid" + link_id).attr("src", "img/folder_open.gif")