Domanda

I am trying to select .singleAnswer but it's not working.

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

The .closest() method searches up through the DOM, where you seem to be looking for a sibling of the .answerBar element, or, really, a child of the .answerContainer element.

Try this:

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

This means go up through the DOM from this to the nearest .answerContainer element, then from there find descendent(s) with class .singleAnswer.

Altri suggerimenti

You are looking for siblings not closest that would start the search up from the current element.

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