jQuery父用法

时间:2011-04-30 17:51:37

标签: php jquery

第一次使用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数组

为什么会这样?

2 个答案:

答案 0 :(得分:2)

从您的jQuery代码判断,您的HTML类friends_rec看起来应该是recommend

此外,由于我们不知道$(el)是什么,所以应该$(this),而不是{{1}}。

答案 1 :(得分:1)

除了赫尔曼所说的你应该做的事情:

var $parent =  $(this).parents('.recommend:first')

你的ajax回调内部。 :首先阻止jQuery上升整个树以查找该类名的更多元素,之后您已找到要查找的元素并将其保留为变量引用,这样您每次都不能创建新的jQuery对象你需要使用它。