@sainttechnik
Frontend developer, в прошлом админ

Почему не работает jQuery селектор по конкретному div в AJAX ответе?

На сайте используется не элегантное решение AJAX корзины, которое пока нет возможности переделать.
При каждом изменении корзины выполняется AJAX запрос, возвращающий всю страницу, из которой потом с помощью jQuery вырезается div с корзиной и подставляется в текущую страницу.
Структура корзины:
<div id="popup-basket" class="modal">
<div class="basket">
<form>...</form>
</div>
</div>

Столкнулся с неработающим селектором, при чем по конкретному блоку:
$('#popup-basket', ajaxResult)
Селектор по класу этого блока тоже не работает:
$('.modal', ajaxResult)
Смотрел через отладчик Chrome содержимое ajaxResult - блок есть, id и class правильные.
При этом дочерниые элементы блока выбираются без проблем и такая конструкция работает и выбирает нужный блок:
$('.basket', ajaxResult).parent()
Версия jQuery - 1.8.2. Пробовал 1.10.2 - без разницы.
PS: вопрос скорее из интереса разобраться почему не выбираеться конкретный блок. Обходные решения уже найдены.
  • Вопрос задан
  • 3837 просмотров
Решения вопроса 1
bahek2462774
@bahek2462774
попробуй вот так .
var $a = $('<div/>').html(ajaxResult);

и потом что тебе нужно
$('#popup-basket', $a)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ruFelix
@ruFelix
Предсказание будущего по руке, таро, кофе.
Это происходит потому что ajax ответ не является объектом jQuery
Что бы всё заработало сделайте вот так:

$('#popup-basket', $(ajaxResult))
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы