添加值以序列化Array Jquery

时间:2011-08-18 18:36:40

标签: javascript jquery

我试图将数据添加到预序列化的数组中。它不起作用。有人发现原因吗?

$("#show-friends").live("click", function() {
    var friendSelector = $("#jfmfs-container").data('jfmfs');   
    var sendArr = $(friendSelector).serializeArray();


    sendArr.push({ name: "userid", value: "<?php echo $userId;?>" });
    sendArr.push({ name: "fid", value: "<?php echo $fid;?>" });
    $.post({
         url:'test.php', 
         data: sendArr, 
         });
});  

编辑:我将代码更改为:

 $("#show-friends").live("click", function() {
    var friendSelector = $("#jfmfs-container").data('jfmfs');  
    var sendArr = friendSelector.serializeArray();
        $.post({
             url:'test.php',
             data: "name=<?php echo $userId;?>&fid=<?php echo $fid;?>&jsondata="+sendArr,
             });
});  

但是我收到错误friendSelector.serializeArray不是函数

1 个答案:

答案 0 :(得分:1)

您的$post来电不正确。您没有像$.ajax那样传递对象。您传递url,然后传递数据(如果有),然后传递回调(如果需要)。

应该是:

$.post('test.php', sendArr);

$.ajax

$.ajax({
    url:'test.php', 
    data: sendArr,
    type: 'POST'
});

编辑:当您执行$("#jfmfs-container").data('jfmfs')时,会返回jfmfs数据的值。 friendSelector.serializeArray不起作用,因为friendSelector是数据,而不是jQuery对象。