AJAX запрос не возвращает скрытые HTML элементы - PullRequest
0 голосов
/ 02 марта 2020

Используя $.ajax, я просто пытаюсь вернуть значение id одиночного span элемента с другой страницы с помощью console.log. Проблема, кажется, в том, что элемент не виден; Инспектор выделен серым цветом span HTML (элемент не имеет размеров и, вероятно, не имеет значения display).

Приведенный ниже код пытается сначала подтвердить, что элемент можно найти на эта страница:

 $.ajax({
        url: extLnk,
        type: 'get',
        dataType: 'html',
        success: function(data){
            console.log( $(data).filter("span").length );
        }
 });

Вывод на консоль всегда равен 0, как будто элемент не может быть найден. Как я могу найти элемент id? Спасибо!

1 Ответ

0 голосов
/ 02 марта 2020

Вы неверно определили проблему.

Если вы не выполните какую-либо фильтрацию, вы получите длину one , которая является любым элементом верхнего уровня в data is.

filter просто фильтрует совпадения верхнего уровня, не ищет потомков. Для этого вам нужно find.

const data = `
<div>
   <span></span>
   <span></span>
</div>
`

console.log( $(data).filter("span").length ); // 0 because it is a div

console.log( $(data).filter("div").length ); // 1 because it still a div

console.log( $(data).find("span").length ); // 2 because there are 2 spans inside the div
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...