Как мне объединить «это» с селектором первого потомка?

#jquery

#jquery

Вопрос:

Я пытаюсь объединить ‘this’ с div:first-child, чтобы получить html-значение скрытого div, которое составляет тело тега привязки. Как это должно работать?

 $('a').click( function(){
  $(this   "div:first-child").html();
}
  

Ответ №1:

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

 $('a').click( function(){
  $("div:first-child", this).html();
}
  

Он выбирает HTML-код "div:first-child" внутри ссылки

Ответ №2:

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

 $('a').click( function(){
  $(this).find("div:first-child").html();
}
  

Или:

 $('a').click( function(){
  $(this).find("div:hidden").html();
}
  

Я не менял ваши элементы с div на span , хотя настоятельно рекомендую вам это сделать. Кстати, использование context-selectors ( $('div:first-child',this) ) вызывает find() внутренние вызовы в любом случае, преобразуя его в: $(this).find('div:first-child') .

Ссылки:

Комментарии:

1. Полезно знать. Спасибо за урок. Я заменю их на spans.

Ответ №3:

Использовать

 $(this).children("div:first-child").html();
  

Для доступа к дочерним элементам в элементе привязки.

Комментарии:

1. @Tom откуда ты знаешь, что это a child element ?

2. Хороший момент, предполагалось, что так и будет, ваше решение более элегантное.

3. @Tom ты знаешь, что происходит, когда ты предполагаешь?

4. «Предположение — мать всех ошибок»

5. @scrappedcola да, я понял, я просто не вижу смысла нападать на кого-то, кто допустил простую ошибку, когда сайт предназначен для помощи людям.

Ответ №4:

 $('a').click( function(){
  $("div:first-child", this).html();
}