Domanda

Sto cercando di selezionare .Singleanswer ma non funziona.

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>
È stato utile?

Soluzione

Il .closest() metodo Ricerche su Attraverso il Dom, dove sembra che tu stia cercando un fratello del .answerBar elemento, o, davvero, un figlio del .answerContainer elemento.

Prova questo:

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

Questo significa salire attraverso il DOM da this al più vicino .answerContainer elemento, allora da lì trova discendenti con classe .singleAnswer.

Altri suggerimenti

Stai cercando fratelli non più vicini che inizierebbero la ricerca dall'elemento corrente.

answer = $(this).parent('.answerBar').siblings('.singleAnswer');
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top