Pregunta

Estoy tratando de seleccionar .Singleanswer pero no funciona.

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> &middot; <a href='#' class='downVote vote'>Downvote</a>  &middot; 
<a class='answerTime'> $difference $periods[$j] ago</a>
 &middot; <a href='#' style='color: orange;' class='editAnswer'><b>Edit</b></a></div>
¿Fue útil?

Solución

los .closest() método búsquedas arriba a través del DOM, donde parece estar buscando un hermano de la .answerBar elemento, o, realmente, un hijo del .answerContainer elemento.

Prueba esto:

answer = $(this).closest('.answerContainer').find('.singleAnswer'); 

Esto significa subir a través del DOM de this Al más cercano .answerContainer elemento, luego desde allí, encuentre descendiente (s) con clase .singleAnswer.

Otros consejos

Estás buscando hermanos no más cercanos que comenzaran la búsqueda desde el elemento actual.

answer = $(this).parent('.answerBar').siblings('.singleAnswer');
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top