it-swarm.dev

TypeError Uncaught: لا يمكن قراءة خاصية 'ownerDocument' غير محددة

أقوم بتدريس نفسي AJAX إلى AJAXify موقعي. في القالب الخاص بي ، لدي رمز JS التالي للحصول على بعض بيانات JSON من طريقة عرض ثم إلحاق البيانات بقسم.

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 Uncaught: لا يمكن قراءة خاصية 'ownerDocument' غير محددة.

34
Denny

تأكد من تمرير محدد إلى jQuery ، وليس شكلاً من أشكال البيانات:

$( '.my-selector' )

ليس:

$( [ 'my-data' ] )
41
redolent

كان لي مشكلة مشابهة. كنت أستخدم jQuery.map ولكني نسيت استخدام jQuery.map (...). get () في النهاية للعمل مع صفيف عادي.

16
Overload119

ظهرت نفس المشكلة بالنسبة لي داخل $elms.each().

لان:

  1. الدالة التي تقوم بتمريرها إلى .each(Function) تعرض (على الأقل) وسيطين ؛ الأول هو الفهرس والثاني هو العنصر في العنصر الحالي في القائمة ، و
  2. لأن أساليب حلقة مماثلة أخرى تعطي الحالية العنصر في الصفيف قبل الفهرس

قد تميل إلى القيام بذلك:

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

عندما يكون هذا هو ما تحتاجه:

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

في حالة إلحاقك بـ DOM ، تأكد من أن المحتوى متوافق:

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

إذا كنت تستخدم وظائف ES6 anon ، فسيتعارض مع $(this)

هذا يعمل:

$('.dna-list').on('click', '.card', function(e) {
  console.log($(this));
});

هذا لا يعمل:

$('.dna-list').on('click', '.card', (e) => {
  console.log($(this));
});
0
Eddie