未捕获的TypeError:无法读取未定义的属性“ownerDocument”

我正在教自己AJAX到AJAXify我的网站。 在我的模板中,我有以下JS代码从视图中获取一些JSON数据,然后将数据附加到div。

function filter(type) { $.getJSON( '/activity_stream/global-activity-stream/', {xhr: "true", filter: type}, function(data) { $('.mainContent').children().remove(); $(data).appendTo('.mainContent'); }); } $(".btn").click(function () { filter("recent"); }); } 

我认为我的视图返回正确的JSON,但现在数据没有被添加到.mainContent div。

它给出了这个错误:

未捕获的TypeError:无法读取未定义的属性“ownerDocument”。

确保您将选择器传递给jQuery,而不是某种forms的数据:

 $( '.my-selector' ) 

不:

 $( [ 'my-data' ] ) 

我有一个类似的问题。 我使用的是jQuery.map,但我忘了在最后使用jQuery.map(…)。get()来处理普通数组。

$elms.each()内部出现了同样的问题。

因为:

  1. 传递给的函数.each(Function)暴露(至少)两个参数; 第一个是索引,第二个是列表中当前元素的元素,和
  2. 因为其他类似的循环方法在索引之前给出数组中的元素

你可能想要这样做:

 $elms.each((item) => $(item).addClass('wrong')); 

如果这是你需要的:

 $elms.each((index, item) => $(item).addClass('wrong')); 

如果您要附加到DOM,请确保内容兼容:

 modal.find ('div.modal-body').append (content) // check content