Jquery不能遍历元素

时间:2012-01-13 02:13:55

标签: jquery tree-traversal jquery-traversing

我正在尝试选择.singleAnswer,但它无效。

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>

2 个答案:

答案 0 :(得分:2)

.closest() method通过DOM搜索 up ,您似乎正在寻找.answerBar元素的兄弟,或者,实际上是{.answerContainer元素的兄弟1}}元素。

试试这个:

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

这意味着将this中的DOM向上移动到最近的.answerContainer元素,然后从那里找到类.singleAnswer的后代。

答案 1 :(得分:0)

您正在寻找不是最接近当前元素的兄弟姐妹。

answer = $(this).parent('.answerBar').siblings('.singleAnswer');