2010-12-20 2 views
8

эй, быстрый вопрос, я ничего не нашел в Интернете. У меня есть родительский div и дочерний div внутри него. чтобы выбрать его с помощью CSS вы бы сказали:jquery этот дочерний селектор?

#parent .child {} 

В JQuery У меня есть вар для моего родительского элемента, однако, как я могу выбрать ребенка с этим? Я знаю, что легко создать новый var, мне просто интересно, если это возможно?

var Parent = $('#parent'); 

Parent.click(function() { 
$(this > '.child').hide(); 

спасибо

+0

Обратите внимание, что [селектор 'EF'] (http://www.w3.org/TR/CSS2/selector.html#descendant-selectors) соответствует не только дочерние элементы, но * любой * потомка элемент 'E'. Для детей используйте ['E> F'] (http://www.w3.org/TR/CSS2/selector.html#child-selectors). – Gumbo

ответ

23

Правильный синтаксис:

$(".child", this) 

Если вы хотите только прямых детей:

$("> .child", this) 

(Заслуга Гамба для упоминание об этом)

Update, два года спустя:

Вы можете использовать $(this).find('> .child')

+0

+1 Я использовал это решение :) –

1

попробовать этот код:

$("#parent").click(function() { 
       $(this).next().hide(); 
}); 
1
var Parent = $('#parent'); 

Parent.click(function() { 
    $(".child", this).hide(); 
}); 

или

$("#parent").click(function() { 
    $(".child", this).hide(); 
}); 
6

Вы можете просто вызвать .find() метод:

var Parent = $('#parent'); 

Parent.click(function() { 
    $(this).find('.child').hide(); 
}); 

Если вы хотите выбрать только непосредственные дети, использовать .children() метод вместо:

Parent.click(function() { 
    $(this).children('.child').hide(); 
}); 

Люди часто используют синтаксис как

$('.child', this); 

так же. Мне это не очень удобно, так как вы пишете «обратный» порядок. Во всяком случае, этот синтаксис преобразуется внутренне в оператор .find(), поэтому вы фактически сохраняете вызов.

Ref .: .find(), .children()

1

U может найти детей ваших родительских элементов и применить CSS.

Образец кода приведен ниже.

var Parent = $('#parent'); 

Parent.click(function() { 
$(this).find('.child').hide();}); 
Смежные вопросы