(如果其他人有类似的问题,请更详细地编辑)
我有一张图片地图,需要在热点翻转时显示div。我在图像映射类中给出了我的区域,并且使用jQuery想要显示它的相应div,例如,
area shape="rect" coords="601,31,723,107" href="#" alt="Some Location" class="some-location"
每个区域都有不同的位置,因此具有不同的类名。
我不确定如何引用一个存储在变量中的类名的元素? 例如,我当前在图像映射上的区域上悬停时获取类名的代码是:
var hotspot = $(this).attr("class");
现在我想做点什么:
$(div.hotspot).show();
以上是行不通的 - 有人能指出我正确的方向吗?
答案 0 :(得分:4)
使用字符串连接:
$("div." + hotspot)
显然,只有当hotspot
只包含一个类时才会有效(请参阅Reigel的评论)。如果它包含更多类,则必须用点替换空格:
$("div." + hotspot.replace(' ', '.'))
(假设类名之间的多个空格被自动修剪,但我不确定,否则你必须使用正则表达式/\s+/
)
答案 1 :(得分:3)
$('.' + hotspot).show();
由于您的变量hotspot
包含类字符串,因此您需要将其作为string selector
传递。
无论如何,它没有太多意义,因为您将访问从中收到该类名的相同元素。
如果您已经queried
该元素一次,您可以(并且应该!)将jQuery object
存储/缓存到变量中并再次从那里访问它。
答案 2 :(得分:0)
$("#divid").find(hotspot);
你可以使用它。
答案 3 :(得分:0)
您需要将字符串参数传递给$()
你错过了你的例子中的引号。
你需要做$('.hotspot').show()
您可能还有var c = '.hotspot';$(c).show()