说我有这个HTML:
<div class="top">top
<div class="middle">middle
<div class="bottom">bottom</div>
middle</div>
top</div>
<div class="middle">outside middle</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法为选择器创建变量,然后将其用作另一个选择器的一部分?这就是我想要做的,但这不起作用:
$top = $('.top');
$($top + ' .middle').click(function(){
$(this).toggleClass('green');
});
Run Code Online (Sandbox Code Playgroud)
我确定我不需要重新选择.top就像变量那样,所以我确定我需要用$ top做点什么,我只是不确定是什么.
Den*_*ret 19
使用
$('.middle', $top)
Run Code Online (Sandbox Code Playgroud)
要么
$top.find('.middle')
Run Code Online (Sandbox Code Playgroud)
你也可以简单地组合选择器,它们是字符串
$($top.selector + ' .middle')
Run Code Online (Sandbox Code Playgroud)
但这只会更慢,更不易读......
您可以使用 find()
描述:获取当前匹配元素集中每个元素的后代,并通过选择器,jQuery对象或元素进行过滤。
$top.find(".middle");
Run Code Online (Sandbox Code Playgroud)