Firefox中的jQuery $ .ajax错误:“无法转换JavaScript参数arg 0”

时间:2011-12-13 20:56:31

标签: javascript ajax jquery

我已经解决了这个问题,但我在这里发帖,因为它可能对其他人有用。

$.ajax({
  url: url,
  dataType: 'html',
  success: function(data) {
    var newRow = $(data).hide();
    newRow.slideDown();    
});

我的ajax响应看起来像这样:

<li class="clearfix">
  <!-- snip -->
</li>
<li class="dock-row">
  <!-- snip -->
</li>

给出错误的行是:

var newRow = $(data).hide();

1 个答案:

答案 0 :(得分:2)

您需要先将数据添加到页面中:

$.ajax({
  url: url,
  dataType: 'html',
  success: function(data) {
    $('<div id="myid" style="display:none;"></div>').prependTo($('body'));
    $('#myid').html(data)
    $('#myid').slideDown();    
});

首次评论后更新

您的代码等同于执行以下操作:

$.ajax({
  url: url,
  dataType: 'html',
  success: function(data) {
    var newRow = $('<li class="clearfix">\r\n<!-- snip -->\]r\n</li>\r\n<li class="dock-row">\r\n<!-- snip -->\r\n</li>').hide();
    newRow.slideDown();    
});

仅仅因为FF没有抛出异常并不意味着代码是正确的。