#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();
}