我可以在Jquery中组合变量和选择器吗?

时间:2013-06-03 15:48:38

标签: jquery

说我有这个HTML:

<div class="top">top
    <div class="middle">middle
        <div class="bottom">bottom</div>
    middle</div>
top</div>
<div class="middle">outside middle</div>

有没有办法为选择器创建变量,然后将其用作另一个选择器的一部分?这就是我想要做的,但这不起作用:

$top = $('.top');

$($top + ' .middle').click(function(){
    $(this).toggleClass('green');
});

我确定我不需要重新选择.top就像变量那样,所以我确定我需要用$ top做一些事情,我只是不确定是什么。

http://jsfiddle.net/ftXLx/1/

3 个答案:

答案 0 :(得分:15)

使用

$('.middle', $top)

$top.find('.middle')

您也可以简单地将选择器(字符串)与

组合在一起
$($top.selector + ' .middle')

但这只会更慢,更不易读......

答案 1 :(得分:4)

您可以使用find()

  

描述:获取当前匹配元素集中每个元素的后代,由选择器,jQuery对象或元素过滤。

$top.find(".middle");

答案 2 :(得分:0)

你能不能这样选择:

$('.top .middle').click();