Jquery:查找存储在变量中的类名的元素

时间:2010-07-06 06:17:34

标签: jquery

(如果其他人有类似的问题,请更详细地编辑)

我有一张图片地图,需要在热点翻转时显示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();

以上是行不通的 - 有人能指出我正确的方向吗?

4 个答案:

答案 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()