2012-01-13 288 views
0

我想選擇.singleAnswer,但它不工作。Jquery不能遍歷元素

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> 
+0

假設'.answerContainer'是'singleAnswer'的父親? – Loktar 2012-01-13 02:18:06

+0

@Loktar是的,編輯的原始問題 – kirby 2012-01-13 02:19:09

+1

最後四個問題中有三個是關於無法遍歷樹的變體。它真的有助於閱讀[文檔對象模型](https://developer.mozilla.org/en/DOM)和[jQuery遍歷方法](http://api.jquery.com/category/transing /) – Dennis 2012-01-13 02:51:28

回答

2

.closest() method搜索通過DOM,你似乎是在尋找.answerBar元素的兄弟姐妹,或者,真的, .answerContainer元素的子元素。

試試這個:

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

這意味着從this上通過DOM到最近.answerContainer元素,然後從那裏找到.singleAnswer派生類(一個或多個)。

0

您正在尋找不是最近的兄弟姐妹,它會從當前元素開始搜索。

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