$ .each()回调未定义(jQuery)

时间:2012-07-24 00:31:48

标签: jquery ajax arrays each

我正在尝试构建一个非常简单的管理区域,管理员可以在该区域中批准或拒绝图片/链接广告,然后再显示在网站上。他们将使用包含"接受"的单选按钮。或"拒绝" ID,该值是广告的唯一ID号。

我想我会尝试将非常方便的.each()函数放入他们自己的数组中,然后让PHP处理每个数组。

但是,在提交表单时,我从FireBug控制台收到Callback is undefined错误。

示例HTML(由PHP输出):

<li><input type="radio" name="' . $a['adID'] . '" id="accept" value="' . $a['adID'] . '" /> Approve</li>
<li><input type="radio" name="' . $a['adID'] . '" id="reject" value="' . $a['adID'] . '" /> Reject</li>

  • ...这是jQuery代码:

    $(document).ready(function() {
    
            $("#save").click(function() {
                var arrayOfAccepted = new Array();
                var arrayOfRejected = new Array();
    
                $.each("input:radio[id='accept']:checked"), function() {
                    arrayOfAccepted.push($(this).val());
                }
    
                $.each("input:radio[id='reject']:checked"), function() {
                    arrayOfRejected.push($(this).val());
                }
    
                    $.ajax({
                    type: 'POST',
                    url: 'exe/fn.moderateAds.php',
                    data: {acceptedAds : arrayOfAccepted, rejectedAds : arrayOfRejected},
                    success: function() {
                    alert("Changes saved successfully.");
                    }
                    });
                });
            });
    
    数据参数中的

    acceptedAds / rejectedAds将是我希望PHP在查找数组时识别数组的变量。

    语法错误,或者我是如何通过AJAX函数传递数据的?

  • 1 个答案:

    答案 0 :(得分:3)

    您的右括号位于错误的位置并且您没有选择元素,而是迭代字符串。此外,您的选择器有点过于具体。

    $.each("input:radio[id='accept']:checked"), function() {
        arrayOfAccepted.push($(this).val());
    }
    

    应该是:

    $("input:radio[id='accept']:checked").each(function() {
        arrayOfAccepted.push($(this).val());
    });
    

    另一个也一样。现在,它被视为一个逗号运算符,左侧操作数为$.each("input:radio[id='accept']:checked")(因此您看到的错误)和一个从未使用过的匿名函数的右侧操作数。

    代码提示:使用[]代替new Array()