Почему поиск ответа jquery ajax игнорирует элементы ul ⇐ Jquery
-
Гость
Почему поиск ответа jquery ajax игнорирует элементы ul
У меня есть вызов ajax, который возвращает приведенный ниже HTML-код. Я хочу проанализировать его и создать поле выбора с соответствующими элементами. Здесь (с $(document)) все работает отлично,
sel = $('').attr({id: 'archive', title: 'дата/время, сохраненное на сервер'}).addClass('dt-button') $(document).find('ul li').each(function(k,v){ txt = $(v).текст() если (txt.match(/.*\.json/)){ sel.prepend($('').attr({value: `archive/${txt}`}).text(txt.replace('.json', ''))) } }) sel.prepend($('').attr({value: 'latest.json', selected:'selected'}).text('latest')) $('body').append(sel) Список каталогов для /data/archive/ Список каталога /data/archive/ [*].gitkeep [*]2024-02-23.tgz [*]2024-02-24.tgz [*]2024-02-25_00-00-01.json [*]2024-02-25_00-10-01.json [*]2024-02-25_00-20-01.json [*]2024-02-25_00-30-01.json [*]2024-02-25_00-40-01.json
Но когда я делаю это с реальным ответом ajax:
$.ajax('data/archive/').done(function(data) { sel = $('').attr({id: 'archive', title: 'дата/время, хранящиеся на сервере'}).addClass('dt-button') $(data).find('ul li').each(function(k,v){ txt = $(v).текст() если (txt.match(/.*\.json/)){ sel.prepend($('').attr({value: `archive/${txt}`}).text(txt.replace('.json', ''))) } }) sel.prepend($('').attr({value: 'latest.json', selected:'selected'}).text('latest')) $('#data-archive').append(sel) }) это не работает, поскольку find возвращает 0 элементов. это работает только тогда, когда я удаляю ul из селектора и просто оставляю li (или li a). Может кто-нибудь объяснить почему?
$(data).filter('ul').find('li a').each(function(){console.log($(this).text())}) это тоже работает...
по сути, не работает только селектор 'ul li'
У меня есть вызов ajax, который возвращает приведенный ниже HTML-код. Я хочу проанализировать его и создать поле выбора с соответствующими элементами. Здесь (с $(document)) все работает отлично,
sel = $('').attr({id: 'archive', title: 'дата/время, сохраненное на сервер'}).addClass('dt-button') $(document).find('ul li').each(function(k,v){ txt = $(v).текст() если (txt.match(/.*\.json/)){ sel.prepend($('').attr({value: `archive/${txt}`}).text(txt.replace('.json', ''))) } }) sel.prepend($('').attr({value: 'latest.json', selected:'selected'}).text('latest')) $('body').append(sel) Список каталогов для /data/archive/ Список каталога /data/archive/ [*].gitkeep [*]2024-02-23.tgz [*]2024-02-24.tgz [*]2024-02-25_00-00-01.json [*]2024-02-25_00-10-01.json [*]2024-02-25_00-20-01.json [*]2024-02-25_00-30-01.json [*]2024-02-25_00-40-01.json
Но когда я делаю это с реальным ответом ajax:
$.ajax('data/archive/').done(function(data) { sel = $('').attr({id: 'archive', title: 'дата/время, хранящиеся на сервере'}).addClass('dt-button') $(data).find('ul li').each(function(k,v){ txt = $(v).текст() если (txt.match(/.*\.json/)){ sel.prepend($('').attr({value: `archive/${txt}`}).text(txt.replace('.json', ''))) } }) sel.prepend($('').attr({value: 'latest.json', selected:'selected'}).text('latest')) $('#data-archive').append(sel) }) это не работает, поскольку find возвращает 0 элементов. это работает только тогда, когда я удаляю ul из селектора и просто оставляю li (или li a). Может кто-нибудь объяснить почему?
$(data).filter('ul').find('li a').each(function(){console.log($(this).text())}) это тоже работает...
по сути, не работает только селектор 'ul li'
Мобильная версия