2012-01-12 99 views
-1

我有一些jQuery变量,试图获取附近元素的值,但他们不工作。我认为最接近()是正确的选择。Jquery树遍历不选择

JQUERY:

$(".answerContainer").on("click", ".editAnswer", function(e){ 
e.preventDefault(); 

var answer_id = $(this).closest('.answer_id').attr('value'); //this doenst work 

HTML:

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

什么是.answerContainer?它不在你的html中。我怀疑你实际上是在寻找$(this).find(“。answer_id”) – Archer 2012-01-12 18:04:50

+1

你的标记似乎不完整,你能提供包含.answer_id和.editanser的完整标记吗? – 2012-01-12 18:05:07

回答

1

试试这个,也可以使用.val()代替attr('value')

var answer_id = $('.editAnswer').parent().siblings('.answer_id').val(); 
+0

谢谢,但它没有工作 – kirby 2012-01-12 17:57:33

+0

已更新的答案... – Gabe 2012-01-12 18:05:33

0

最近假设你想通过该节点的祖先穿越。在这种情况下,请尝试prev()

0
$('.editAnswer').parent().find('.answer_id').val('value');