Подтвердить что ты не робот

Uncaught TypeError: Не удается прочитать свойство "ownerDocument" из undefined

Я преподаю 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, но теперь данные не добавляются в div .mainContent.

Он дает эту ошибку:

Uncaught TypeError: Невозможно прочитать свойство "ownerDocument" из undefined.

4b9b3361

Ответ 1

Убедитесь, что вы передаете селектор в jQuery, а не какую-либо информацию:

$( '.my-selector' )

не

$( [ 'my-data' ] )

Ответ 2

У меня была аналогичная проблема. Я использовал jQuery.map, но я забыл использовать jQuery.map(...). Get() в конце для работы с нормальным массивом.

Ответ 3

Эта же проблема возникла у меня внутри $elms.each().

Потому что:

  • функция, которую вы передаете в .each(Function), выдает (по крайней мере) два аргумента; первый - это индекс, а второй - элемент в текущем элементе в списке, а
  • потому что другие подобные методы цикла дают текущему элементу в массиве перед индексом

у вас может возникнуть соблазн сделать это:

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

Если это то, что вам нужно:

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