2013-05-31 2 views
1

У меня есть быстрая веб-программа, которая, когда вы наведите курсор на другое изображение, появляется под ним маленькая рамка.Как использовать «this» на внутреннем div от родителя

настроить функцию быстрого следующим образом:

$('.indArtistBox').hover(function(){ 
    $('.description').show(); 
}); 

Эта проблема, я хочу, чтобы некоторые, как включить this, потому что я хочу только описание будет показано на .indArtistBox, что в настоящее время парил на.

Я пробовал $(this).('.description'), но это явно не сработало. Как бы я это сделал?

ответ

8

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

$(this).find(".classOfYourSubObject")./* ... */ 
1

Вы можете установить this как context для селектора:

$('.description', this).show(); 

Внутренне это реализуется с .find() методом JQuery, так что это эквивалентно:

$(this).find('.description').show(); 

Если .description' является прямой ребенок от .indArtistBox, it seems to be faster in most browsers для использования jQuery's .children(), поскольку этот метод перемещается только на один уровень вниз по дереву DOM.

$(this).children('.description').show(); 
+0

jQuery, кажется, полностью путает смысл «контекста» (поэтому ваша ссылка связана с записью селектора, а не с «контекстной» записью). Здесь «контекст» означает корень или родительский элемент, к которому будет применен селектор. Документация не объясняет это вообще. – RobG

+0

@RobG - Я не понимаю, что вы имеете в виду, это не «контекст», а что-то вроде «окружающих элементов» в этом случае, поэтому, если вы укажете «контекст» для селектора, к которому будет применяться, не имеет смысла что «контекст», который вы указываете, является родительским элементом, так как он содержит все окружающие элементы? Кроме того, ссылка на точное место в документации jQuery, где показано, как указать «контекст», к которому должен применяться селектор. –

+0

Термин контекст используется в разных местах для обозначения разных вещей, например. «родительский» элемент для селектора (как в данном случае), «это» ключевое слово функции, в «логическом контексте» (что бы это ни значило) и т. д. В ECMAScript «контекст» означает только одно: контекст выполнения. Ни одно из применений jQuery контекста не соответствует значению ECMAscipt, следовательно, путаница. Обратите внимание, что на самом деле это не объясняет, что означает «контекст» для селектора, просто предполагается, что пользователь будет его решать. – RobG

Смежные вопросы