Проблема с селектором jQuery? - PullRequest
2 голосов
/ 26 августа 2010

Я использую функцию наведения мыши для меню в меню.Я выбрал определенный элемент, используя его класс.Чтобы внести изменения только в этот элемент, а не во все элементы этого класса, я могу использовать «this».Но я хочу внести изменения в тег h3 внутри этого элемента класса.Снова тот, на котором я завис, и не все элементы с таким именем класса.

Я пытался использовать элемент> после 'this', но он не работает.

Как мне это сделать?Надеюсь, я объяснил достаточно хорошо.Я надеюсь, что вы понимаете, используя код.

$('.slide').hover(
    function(){
        $(this>'h3').animate({
            height: '100%'
        });
    },
    function(){
        $(this>'h3').animate({
            height: '25px'
        });
    }
);

Все ответы приветствуются.Спасибо

Ответы [ 6 ]

4 голосов
/ 26 августа 2010

Вы используете .find(), чтобы получить элемент <h3> внутри this.

$('.slide').hover(
    function(){
        $(this).find('h3').animate({
            height: '100%'
        });
    },
    function(){
        $(this).find('h3').animate({
            height: '25px'
        });
    }
);

Если <h3> - прямой ребенок, то немного эффективнее использовать .children():

$(this).children('h3').animate({
2 голосов
/ 26 августа 2010

Попробуйте это:

$(this).children('h3').animate();
1 голос
/ 26 августа 2010

Вы должны использовать $ (this) .find ('h3'), как в

  $('.slide').hover(
    function(){
        $(this).find('h3').animate({
            height: '100%'
        });
    },
    function(){
        $(this).find('h3').animate({
            height: '25px'
        });
    }
);

или если вы хотите, чтобы h3: s находился непосредственно под .slide, вы можете использовать

$(this).children('h3')
1 голос
/ 26 августа 2010

Попробуйте $(this).find("h3") вместо $(this>'h3').

1 голос
/ 26 августа 2010

Использование:

$(this).find('h3')

Или:

$(this).children('h3')
0 голосов
/ 26 августа 2010

Все вышеприведенные ответы верны. Причина, по которой ваш селектор не сработал, заключается в том, что простое ключевое слово this указывает на фактический элемент DOM. Вы должны обернуть 'this' в объект jQuery сам по себе так: $ (this), прежде чем использовать любые методы jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...