2013-07-31 46 views
3

我,而不是做這樣一個超級簡單的問題,:爲查找()語句jQuery的簡寫

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

與此HTML:

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

是有一個短的手在那裏你可以以某種方式跳過查找單詞?

+0

確實像這樣http://jsfiddle.net/j9Tyf/? – Shebo

回答

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作爲上下文

Check Fiddle

+0

所以如果我有像我更新它的HTML,這仍然工作? – loriensleafs

+0

@loriensleafs ..當然,它應該工作 –

+0

你能再次檢查更新,對不起,我做了一個糟糕的工作解釋,仍然與那工作? – loriensleafs

0

使用選擇方面http://api.jquery.com/jQuery/#jQuery1

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

它去做最簡單的方法。


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

會工作得很好,你不必遍歷的每一步。