如何在变量中存储.attr(“id”)

你们以前一直非常乐于助人。 我一直在搜索stackoverflow一段时间,但无法得出答案。

希望这是一个简单的问题。 我正在尝试将当前hover的div的id存储在变量中。 然后,我想使用该变量来切换具有相同ID的图像。

你可以看到我已经尝试将变量直接设置为其中一个id,并且完美无缺。 我尝试了很多不同的技术。 我究竟做错了什么?

提前感谢您的任何建议!

我这里有一个jsFiddle: http : //jsfiddle.net/SN3mz/1/

JQUERY

$(document).ready(function () { $('.hover').mouseenter(function() { var currentId = $(this).attr("id"); // var currentId = "https://stackoverflow.com/questions/18167558/how-to-store-attrid-in-a-variable/#story1"; $('.pshow').hide(); $('.feature').find(currentId).toggle(); }); }); 

HTML

  

也许你需要这样做:

 $('.feature').find("#"+currentId).toggle(); 

当您使用attr获取id时,它将获取id的名称,但不会获取与其关联的#符号。 将#添加到当前的id,如下所示:

 $('.feature').find('#' + currentId).toggle(); 

另外,我建议将pshow id更改为可以与id相关的类。 看看这个小提琴: http : //jsfiddle.net/CRwNr/1/

你有重复的ID(这会导致问题),它们应该是唯一的。

此外,当你去显示正确的缩略图时,你的目标是它的容器.feature而不是图像本身。 所以我添加了.feature img 。 一旦你修复了ID问题,你就可以做到

$('.feature').hide().find( '#' + $(this).attr('id') ).show()代替。

 $(document).ready(function () { $('.hover').mouseenter(function() { var currentId = $(this).attr("id"); $('.pshow').hide(); $('.feature img#' + currentId).show(); }); });