Null не является объектом с AJAX и извлечением частичной страницы - PullRequest
0 голосов
/ 17 сентября 2018

Может действительно понадобиться некоторая помощь, чтобы понять это!

Я пытаюсь получить часть HTML с помощью jQuery, но получаю ошибку:

Ноль не является объектом

Эта строка вызывает ошибку:

$("#collection").html(jQuery(html).find('#collection').html());
function update_products(ajax_page) {  
  $.ajax({
    type: "GET",
    url: ajax_page,
    data: {},
    success: function(html) { 
      $("#collection").html(jQuery(html).find('#collection').html());  
      history.pushState({
        page: ajax_page
      }, "", ajax_page);                  
    }
  }); 
}

Работает при получении всей страницы:

function update_products(ajax_page) {  
  $.ajax({
    type: "GET",
    url: ajax_page,
    data: {},
    success: function(html) { 
      $("#collection").html(html);  
      history.pushState({
        page: ajax_page
      }, "", ajax_page);                  
    }
  }); 
}

Я думаю, что это как-то связано сjQuery(html).find('#collection').html(), но я не знаю, где я ошибаюсь.

Ошибка с другой версией:

Null не является объектом В этой строке `var $ response = $ (html); '

function update_products(ajax_page) {  
$.ajax({
url: ajax_page,
dateType: 'html',
success: function(html){ 
      //Create jQuery object from the response HTML.
    var $response=$(html);

    //Query the jQuery object for the values
    var collection = $response.filter('#collection').text();

  $("#collection").html(collection);  
     history.pushState({
     page: ajax_page
     }, "", ajax_page);                  
}


}); 

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

В предыдущем проекте я делал следующее:

$("#collection").load(ajax_page+" #collection", ajax=true, function(){
    history.pushState({
        page: ajax_page
        }, "", ajax_page); 
});

Конечно, у моего проекта не было тех же идентификаторов, и мой URL не был в переменной, он был постоянным,поэтому я просто написал это в.

Я продолжаю работу над своим проектом в рамках возвращенных данных, но я помещаю его в скрытый DIV, так что это фактически часть страницы, прежде чем я манипулирую им.Это не сработает для вас, так как идентификатор будет на странице дважды.Вероятно, можно обойтись без этого, но я не боролся с этим, чтобы выяснить это.В эти дни я перекладываю обработку, которая входит в #collection div, в отдельный скрипт, который проще ajax, когда вы хотите обновить его.

0 голосов
/ 17 сентября 2018

Вам необходимо определить 'html' в качестве аргумента для обработчика успеха.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...