2014-10-24 4 views
0

Этого вопрос несколько связанных с моим запросом, но не совсем подходит то, что мне нужно, чтобы понять:Выбрать подкатегорию элемента, используя кэшированный селектор (JQuery)

jQuery caching selectors

У меня есть этот HTML:

<div id="myDiv"> 
    <img src="http://placekitten.com/g/200/200" /> 
</div> 

Я кэшируюсь селектор DIV: var md = $('#myDiv');

Как я могу получить доступ к <img> вспомогательному элементу, используя кешированный селектор DIV?

Для, например, что-то вроде:

md.('img').fadeOut(); 

или

$(md + ' img').fadeOut(); 

jsFiddle

ответ

2

Вы хотите, чтобы выбрать md объект JQuery, а затем использовать либо find() или children() метод для поиска его иерархии для элементов «ниже» этого:

var md = $('#myDiv'); 
//the next two lines do the same thing 
md.find('img').fadeOut(); 
md.children('img').fadeOut(); 

Что лучше для вас? Ну ... это излагает на the differences between find() and children(), а ответы на this question дают вам некоторые полезные показатели эффективности, которые помогут решить.

См working example of find() and children() at http://jsfiddle.net/o8Ldzo5z/4/

Обратите внимание, что Конвенция является назначение объектов Jquery к переменным с приставкой "$": var $md = $('#myDiv');

1

Вы можете использовать

  • find// generic method for finding descendants
  • children// for immediate children

выше, а также, filter также могут быть использованы.

md.find('img').fadeOut(); 
+1

'найти()' является правильным, но я не думаю, что 'фильтр () 'работает так: http://jsfiddle.net/o8Ldzo5z/1/ –

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