3

我有一个超级简单的问题,而不是做这样的事情:

$(".one").click(function() {
    $(this).find('.two').find('.three').css...
});

使用此 HTML:

<div class="one">
  <div class="two">
    <div class="three"></div>
  </div>
</div>

有没有一种速记方法可以让您以某种方式跳过“查找”一词?

4

2 回答 2

13
$('#one #two #three')

但请记住,ID在一个页面中应该是唯一的

所以$('#three').css()应该足够了

当元素是class元素或tagNames

$('.one .two .three') <--
$('div span p')       <--  These are fine

所有这些都应该工作

// Using find to target the class
$(this).find('.two').find('.three').css('border', '1px dashed red');
// Using find to target the class
$(this).find('.two .three').css('border', '1px dashed red');
// Using the this context
$('.two .three',this).css('border', '1px dashed red');
// Using the this context and immediate children
$('> .two > .three',this).css('border', '1px dashed red');

>只会得到直系子女。其他 2 个this用作上下文

检查小提琴

于 2013-07-31T20:12:54.613 回答
0

使用选择器上下文http://api.jquery.com/jQuery/#jQuery1

$(".one").on('click', function() {
    $('.three', this).css...
});

这是最简单的方法。


$(".one").click(function() {
    $(this).find('.three').css...
});

可以正常工作,您不必遍历每一步。

于 2013-07-31T20:27:21.060 回答