JQuery не может пройти элементы
-
27-10-2019 - |
Вопрос
Я пытаюсь выбрать .singleanswer, но это не работает.
JQuery:
$(".answerContainer").on("click", ".editAnswer", function(e){
e.preventDefault();
answer = $(this).parent('.answerBar').closest('.singleAnswer'); //this variable doenst work
HTML:
<div class='answerContainer'>
<p name='singleAnswer' class='singleAnswer'>$answer[$f]</p>
<input type='hidden' value='$answerid[$f]' class='answer_id' />
<p class='ratingBox'> $answerrating[$f]</p>
<div class='answerBar'>
<a href='#' class='upVote vote'>Upvote</a> · <a href='#' class='downVote vote'>Downvote</a> ·
<a class='answerTime'> $difference $periods[$j] ago</a>
· <a href='#' style='color: orange;' class='editAnswer'><b>Edit</b></a></div>
Решение
А .closest()
метод searches вверх Через Дом, где вы, кажется, ищете брата .answerBar
элемент, или, действительно, ребенок .answerContainer
элемент.
Попробуй это:
answer = $(this).closest('.answerContainer').find('.singleAnswer');
Это означает, что пройти через DOM из this
к ближайшему .answerContainer
Элемент, затем оттуда найдите потомку (ы) с классом .singleAnswer
.
Другие советы
Вы ищете братьев и сестер, а не ближайшие, которые начали бы поиск с текущего элемента.
answer = $(this).parent('.answerBar').siblings('.singleAnswer');
Не связан с StackOverflow