我有一个jquery变量,它不起作用,它最喜欢,因为我不知道如何正确选择元素。我认为下面的选择器会起作用,但它们不会
JQUERY:
$('.upVote').click(function(e){
e.preventDefault();
var ratebox = $(this).find('.ratingBox'); //this variable isnt working
var answer_id = $(this).children('.record_id').attr('value'); //this one too
HTML:
<p class='ratingBox'> $answerrating[$f]</p>
<div class='answerBar'>";
<a href='#' class='upVote vote'>Upvote</a>
·
<a href='#' class='downVote vote'>Downvote</a>
<a class='answerTime'> $difference $periods[$j] ago</a>
</div>
<input type='hidden' name='record_id' value='$answerid[$f]' class='record_id' />
答案 0 :(得分:2)
find()
和children()
都会在DOM树中查找比当前更低的元素 - 您要查找的元素都更高。试试这个:
var ratebox = $(this).closest('.answerBar').prev(".ratingBox");
var answer_id = $(this).closest('.answerBar').next('.record_id').attr('value');
答案 1 :(得分:0)
使用时应使用parent
,prev
和next
。因为find
和children
会查找根据您的标记无效的元素。试试这个
$('.upVote').click(function(e){
e.preventDefault();
var ratebox = $(this).parent().prev('.ratingBox'); //this will work now
var answer_id = $(this).parent().next('.record_id').attr('value'); //this too
});