2013-07-31 3 views
3

У меня есть супер простой вопрос, вместо того, чтобы делать что-то вроде этого:JQuery стенография для FIND() заявление

$(".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... 
}); 

будет работать нормально, вы не должны пройти каждый шаг.