如何在变量中存储.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
Large Image Features Will Give More Pop. by Ebenezer Ekuban
也许你需要这样做:
$('.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(); }); });