24

Как получить дочерние элементы селектора $(this)?

13

У меня есть макет, похожий на этот, и я хотел бы использовать селектор jQuery для того, чтобы выбрать дочерний элемент img внутри div при клике на него.

<div id="...">
  <img src="...">
</div>

Чтобы получить div, я использую следующий селектор:

$(this)

Как я могу получить дочерний элемент img с помощью селектора?

5 ответ(ов)

4

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

$(this).find('img');

что вернёт все элементы img, являющиеся потомками данного div.

1

Если вам нужно получить первый элемент img, который находится на одном уровне вниз от текущего элемента, вы можете использовать следующий код:

$(this).children("img:first")

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

0

Если ваш тег <div> непосредственно следует за тегом <img>, вы также можете использовать:

$(this).next();

Этот код позволит вам получить следующий элемент после текущего, если он соответствует тегу <img>. Это может быть полезно в ситуациях, когда необходимо манипулировать этим изображением или его свойствами.

0

Прямые дочерние элементы можно получить с помощью следующего jQuery-селектора:

$('> .child-class', this)

Здесь $('> .child-class', this) выбирает все элементы с классом child-class, которые являются непосредственными дочерними элементами текущего элемента (this). Знак > указывает на то, что мы выбираем только тех детей, которые находятся на первом уровне вложенности.

0

Вопрос: Как сослаться на дочерние элементы в jQuery? Я обобщил это в следующем коде jQuery:

$(this).find("img"); // любой дочерний или внучатый элемент img и т.д.   
$(this).children("img"); // любой дочерний элемент img, который является прямым потомком 
$(this).find("img:first"); // любой первый дочерний элемент img или первый внучатый элемент и т.д.
$(this).children("img:first"); // первый дочерний элемент img, который является прямым потомком 
$(this).children("img:nth-child(1)"); // img, который является первым дочерним элементом прямого потомка
$(this).next(); // следующий элемент (если это img, то это будет первый дочерний элемент прямого потомка)

Ответ: В вашем коде вы правильно показали несколько способов обращения к дочерним элементам в jQuery. Вот краткий обзор каждой из строчек:

  1. $(this).find("img"); - ищет все элементы img, которые являются дочерними или внучатыми по отношению к текущему элементу.
  2. $(this).children("img"); - выбирает только те элементы img, которые являются непосредственными дочерними элементами.
  3. $(this).find("img:first"); - находит первый элемент img, включая всех потомков.
  4. $(this).children("img:first"); - выбирает первого дочернего элемент img, который является непосредственным потомком.
  5. $(this).children("img:nth-child(1)"); - находит первый прямой дочерний элемент (необходим элемент имеет индекс 1).
  6. $(this).next(); - возвращает следующий элемент на том же уровне, что и текущий. Если вы ожидаете, что это будет img, убедитесь, что он действительно есть.

В зависимости от того, что именно вам нужно — все потомки или только непосредственные, — вы можете использовать соответствующие методы. Надеюсь, это поможет!

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь