質問

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>
役に立ちましたか?

解決

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.

他のヒント

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

answer = $(this).parent('.answerBar').siblings('.singleAnswer');
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top