0

我正在尝试选择 .singleAnswer 但它不起作用。

查询:

 $(".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>
4

2 回答 2

2

.closest()方法在 DOM 中向上搜索,您似乎在其中寻找元素的兄弟.answerBar,或者实际上是元素的子.answerContainer元素。

试试这个:

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

这意味着从 DOM 向上爬到this最近的.answerContainer元素,然后从那里找到带有 class 的后代.singleAnswer

于 2012-01-13T02:28:26.303 回答
0

您正在寻找不最接近的兄弟姐妹,它们将从当前元素开始搜索。

answer = $(this).parent('.answerBar').siblings('.singleAnswer');
于 2012-01-13T02:30:00.110 回答