не может получить доступ к дочернему элементу - jquery - PullRequest
0 голосов
/ 27 июня 2010

У меня есть HTML как

<div class="a">
    <div class="b">
        something
    </div>

    <div class="c">
        <div class="subC">
            i want to access
        </div>
    </div>
</div>

и jquery как

$('.a').hover(function(){
    $(this).children('.subC').fadeOut();
})

Я хочу получить доступ к классу "subC", но выше не работает.

Я также пытался

$('.a').hover(function(){
    $(this).children('.c .subC').fadeOut();
})

, но это тоже не работает!

Какое решение этой проблемы!я делаю что-то не так?пожалуйста помогите

Ответы [ 4 ]

4 голосов
/ 27 июня 2010

children идет только на один уровень глубиной. Попробуйте find() вместо.

http://api.jquery.com/children/

1 голос
/ 27 июня 2010

Находясь внутри замыкания jQuery, this относится к объекту jQuery, возвращенному предыдущей операцией jQuery:

$('.a').hover(function() {
    // 'this' is a jQuery object containing the result of $('.a')
})

Используйте this в замыкании, чтобы установить область для запросов внутри текущего jQueryобъект:

$('.a').hover(function() {
    $('.subC', this).fadeOut();
})
0 голосов
/ 27 июня 2010

Как говорит Роб, используйте .find для поиска глубоких элементов.

$('.a').hover(function()
    {
        $(this).find('.c .subC').fadeOut();
    });

, если хотите использовать .children, напишите

$('.a').hover(function(){
    $(this).children('.c').children('.subC').fadeOut();
})
0 голосов
/ 27 июня 2010

Используйте .find('selector'), чтобы найти глубоких детей

...