第一次使用jQuery parent并感到困惑,这是我的html:
<div id="friends_inveni" class="friends_rec" style="">
<br>
<div style="height: 280px; overflow-y: auto;">
<div style="width:150px;float:left;font-size:11px;color:White;">
<input type="checkbox" name="friends" value="3265" id="friend_3265">
<img style="width:24px;vertical-align:middle;" src="https://graph.facebook.com/661382259/picture">
Test1
</div>
<div style="width:150px;float:left;font-size:11px;color:White;">
<input type="checkbox" name="friends" value="3265" id="friend_3265">
<img style="width:24px;vertical-align:middle;" src="https://graph.facebook.com/599567764/picture">
Test2
</div>
</div>
<br clear="all">
<div class="action_new_comment">
<textarea class="action_comment_input" onkeyup="check_height(this);" style="height:36px;"></textarea>
<br clear="all">
<a class="action_btn" style="font-size:11px;" name="comment" id="A1">Send Recommendation</a>
</div>
</div>
这是我的jQuery代码:
jQuery(document).ready(function() {
$(".action_btn").live('click', function() {
var friends = new Array();
$(this).parents('.recommend').find('input:checked').each(function(k) { friends[k] = $(this).val(); });
var comment = $(this).parents('.recommend').find('textarea').val();
if (friends.length == 0) {
alert('Please select at least one friend.');
} else {
$.post("update.php",
{ uid: <?php echo $_SESSION['uid']; ?>, mid: <?php echo $_GET['mid']; ?>, friends: friends, comment: comment },
function() {
var newComment = $('<div class="bubble_confirmation"><h1>Recommendation Sent!</h1><br /><br > <a href="#" onclick="$(this).parent(\'div\').remove();return false;">Send more</a></div>');
$(this).parents('.recommend').append(newComment.fadeIn());
$(this).parents('.recommend').find("input:checkbox:checked").attr("checked", "");
$(this).parents('.recommend').find('.action_comment_input').val('');
});
}
});
});
问题在于: 1.我无法获得文本框的内容 2.我无法获取userid数组
为什么会这样?
答案 0 :(得分:2)
从您的jQuery代码判断,您的HTML类friends_rec
看起来应该是recommend
。
此外,由于我们不知道$(el)
是什么,所以应该$(this)
,而不是{{1}}。
答案 1 :(得分:1)
除了赫尔曼所说的你应该做的事情:
var $parent = $(this).parents('.recommend:first')
你的ajax回调内部。 :首先阻止jQuery上升整个树以查找该类名的更多元素,之后您已找到要查找的元素并将其保留为变量引用,这样您每次都不能创建新的jQuery对象你需要使用它。