Подтвердить что ты не робот

$ (этот + "селектор" )? $( "img", это) возможно?

Я пытаюсь "выбрать" img внутри селектора $(this). Я знаю, что могу найти его, используя .find('img'), но это возможно:

$("img",this)?

Какой самый оптимальный способ сделать это?

Первоначальный код

<a class="picture" href="test.html">
    <img src="picture.jpg" alt="awesome">
</a>
4b9b3361

Ответ 1

Какой самый оптимальный способ сделать это?

Оба $(this).find('img') и $('img', this) эквивалентны.

Из документов:

Внутри контекст селектора реализуется с помощью метода .find() поэтому $('span', this) эквивалентно $(this).find('span').

http://api.jquery.com/jQuery/

Ответ 2

Это идеальный разумный способ сделать это.

Итак, вы бы хотели:

$('a').click( function() {
   //if the element dosent change you can use this
   //var src = $('img', this).attr('src');
   //else use $(this)
   var src = $('img', $(this)).attr('src');
   alert(src);
   return false;
});

Смотрите: http://jsfiddle.net/xYmwV/

В действительности нет никакой разницы, поскольку в обоих методах вы загружаете элемент dom и выполняете поиск. Ваш путь "чище" и проще, но может быть более запутанным:)

Более быстрый способ был бы $(this).children(), так как тогда он не должен был искать элементы, но в DOM попадает прямо вниз. Но он принимает гибкость script.

Ответ 3

Да, вы можете это сделать... в любом случае они эквивалентны, так что это всего лишь вопрос ваших "синтаксических вкусов":

Внутри контекст селектора реализуется с помощью метода .find() поэтому $('span', this) эквивалентно $(this).find('span').

http://api.jquery.com/jQuery/

Ответ 4

Это не имеет значения, выбирайте то, что вы предпочитаете, это прежде всего стилистический выбор.

jQuery обрабатывает форму $(selector, context), выполняя $(context).find(selector) или (если context уже является экземпляром jQuery) context.find(selector) под обложками, поэтому теоретически форма find немного более эффективный, но никак не имеющий значения.

Ответ 5

Почему вы не можете использовать .find('img')? он работает со мной: http://jsfiddle.net/nnmEY/

Ответ 6

Я пытаюсь "выбрать" img внутри селектора $(this).

var myImg = $(this).find("img");