Постраничная навигация Битрикс (через "показать еще"). Как решить ошибку в JS?

Есть статья тут, вроде все просто и понятно.

Есть скрипт
$(document).ready(function(){

    $(document).on('click', '.load_more', function(){

        var targetContainer = $('.news-list'),          //  Контейнер, в котором хранятся элементы
            url =  $('.load_more').attr('data-url');    //  URL, из которого будем брать элементы

        if (url !== undefined) {
            $.ajax({
                type: 'GET',
                url: url,
                dataType: 'html',
                success: function(data){

                    //  Удаляем старую навигацию
                    $('.load_more').remove();

                    var elements = $(data).find('.news-item'),  //  Ищем элементы
                        pagination = $(data).find('.load_more');//  Ищем навигацию

                    targetContainer.append(elements);   //  Добавляем посты в конец контейнера
                    targetContainer.append(pagination); //  добавляем навигацию следом

                }
            })
        }

    });

});


я заменил на чистый JS

document.getElementById('load_more').addEventListener('click', function () {

        var targetContainer = document.querySelector('.news-list');
        var url = document.querySelector('.load_more').getAttribute('data-url');    //  URL, из которого будем брать элементы

        if (url !== undefined) {
            BX.ajax({
                type: 'GET',
                url: url,
                dataType: 'html',
                onsuccess: function (data) {

                    //  Удаляем старую навигацию
                    document.querySelector('.load_more').remove();

                    var elements = data.querySelectorAll('.news-item'),
                        pagination = data.querySelectorAll('.load_more');//  Ищем навигацию

                    targetContainer.append(elements);   //  Добавляем посты в конец контейнера
                    targetContainer.append(pagination); //  добавляем навигацию следом

                }
            })
        }
    })

и получаю data.querySelectorAll is not a function.
Не пойму как исправить ошибку. Мы вроде получили данные onsuccess: function (data) успешно и через var elements = data.querySelectorAll('.news-item') или var elements = data.querySelector('.news-item') пробую найти нужное и добавить это на страницу.
  • Вопрос задан
  • 253 просмотра
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
querySelector* вызывается на DOM элементах. Сервер не может вернуть Вам ссылку на дом элемент.
Что в data? Селектор, судя по всему? тогда
document.querySelector(data).querySelector('.news-item')
, если это сужение поиска необходимо.
---
$(data).find('.news-item') не равно data.querySelectorAll('.news-item'). Вы либо ошиблись, либо не до конца понимаете что такое $(data)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы