Jquery ajax find не работает

Почему jQuery не находит элемент после его замены через Ajax (видео внутри)?

Не знаток ASP.NET, но на клиенте нет разницы, кто сформировал код.
Предположу, что вам нужно делегирование, а именно:

То же самое относится и к регистрации слушателей для любых всплывающих событий. В скорости срабатывания немного потеряете, но получите независимость от модификации DOM.

Представьте себе ситуацию так:

Вот у вас есть некий дом элемент А. На него навешан слушатель, который ждет клик по этому элементу А.
Через какое-то время мы берем и удаляем А, и вставляем вместо него Б. Даже если Б очень похож на А, близнец скажем там, это все равно уже не А. И слушатель, что был навешан на А уже потерян. По этому ждать события бесполезно.

Эта задача может быть решена 2-я способами:
1. После замены элемента А на Б аяксом, мы заново навешиваем слушатель клика уже на новый элемент Б.
2. Используем делегирование. При этом слушатель навешиваем на документ в самом начале и ждем, пока через всплытие до нас дойдет клик. Если какой-то любой клик дошел, мы проверяем его источник, и если это один из наших элементов из той же категории что А и Б, то мы его обрабатываем.

Источник

jQuery .find() on data from .ajax() call is returning «[object Object]» instead of div

Trying to find div element with id=»result» in returned data from .ajax() using .find() . Unfortunately, alert(result) doesn’t return div#result .

Here is my code:

17 Answers 17

To answer your question specifically, it seems to be working correctly. You said that it returns [object Object] , which is what jQuery will return with the find(«#result») method. It returns a jQuery element that matches the find query.

Try getting an attribute of that object, like result.attr(«id») — it should return result .

In general, this answer depends on whether or not #result is the top level element.

If #result is the top level element,

find() will not work. Instead, use filter() :

If #result is not the top level element,

I just spent 3 hours to solve a similar problem. This is what worked for me.

The element that I was attempting to retrieve from my $.get response was a first child element of the body tag. For some reason when I wrapped a div around this element, it became retrievable through $(response).find(‘#nameofelement’) .

No idea why but yeah, retrievable element cannot be first child of body. that might be helpful to someone 🙂

btw alert is a rough way to debug things, try console.log

this is your answer:

The following jQuery Won’t work:

as the divs are top level elements and data isn’t an element but a string, to make it work you need to use .filter

do not forget to do it with parse html. like:

This worked for me, you just need to put .html() on the end of — $(response).find(«#result»)

The jQuery find() is returning a jQuery object that wraps the DOM object. You should be able to work with that object to do what you’d like with the div.

The thing is that your ajax response is returning a string, so if you use directly $(response) it would return JQUERY: Uncaught Error: Syntax error, unrecognized expression in the console. In order to use it properly you need to use first a JQUERY built-in function called $.parseHTML(response). As what the function name implies you need to parse the string first as an html object. Just like this in your case:

Specify dataType: «html» .

If you do not jQuery will guess the requested data type (check: http://api.jquery.com/jQuery.ajax/). My guess is that in your case response was a String rather than a DOMObject . Obviously DOM methods won’t work on a String.

You could test that with console.log(«type of response: » + typeof response) (or alert(«type of response:» + typeof response) , in case you don’t run Firebug)

You can do it in this way to find any div and get its attributes or anything you want.

Is #result in the response HTML? Try the following. jQuery will still return an empty object if it doesn’t find anything.

You should add dataType: «html» to the request. Im quite sure you wont be able to search the DOM of the returned html if it doesnt know it is html.

Источник

ajax не работает с использованием jquery

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Не работает JQuery + AJAX
Привет ребята. Я в ускоренном режиме пытаюсь хоть немного разобраться в Jquery + AJAX. Проблема в.

есть кто нибудь поможет мне писать demo с использованием jquery & ajax
задача: jQuery Dialog practise: Загрузка таблицы «пользователи» (деление на страницы с помощью.

Не работает Jquery AJAX + ЧПУ
День добрый. Попал в тупик. Прописываю аякс функцию при клике. function GetData() < .

Не работает jQuery после Ajax
Доброго времени суток! Возникла такая проблема. Все формы на сайте я загружаю с помощью ajax. После.

Ajax не работает функция (preventDefault) — jQuery
Добрый день, подскажите, почему не отсылает форму? — $(‘form#form2’).submit(function(e) <.

ajax jQuery запрос в никуда(но он работает) разобраться
Здравствуйте. Есть вопрос. Разбираюсь с уже готовым сайтом. запросы которые работают на ajax.

JQuery, Ajax и LIVE!? Возможно ли повесить ajax запрос на live?
все делаю правильно, но у меня даже onSubmit alert(«ok!»); выводить не хочет? код примерно.

Источник

Ошибка JQuery .find () в результате .ajax ()

Я работаю над расширением Chrome, которое при определенных условиях выполняет запрос $.ajax() , а затем использует информацию о конкретных элементах в возвращенном HTML . На данный момент я просто пытаюсь получить доступ к определенному элементу и записать его в консоль, чтобы убедиться, что он работает правильно.

Для начала, я почти уверен, что HTML успешно получен. Когда я записываю результат напрямую, вывод идентичен результату, когда я просматриваю исходный код страницы в Chrome. Я также пробовал использовать $.parseHTML() , который при регистрации дает мне массив потомков верхнего уровня. Использование селекторов возвращает массив непосредственных дочерних элементов, соответствующих селектору, но они не работают для элементов, которые являются дочерними элементами этих дочерних элементов (и так далее).

Я уже просмотрел несколько сообщений и пробовал разные вещи, такие как использование $( , ) , $( ).filter( ) и $( ).find( ) , но безрезультатно. Каждый раз, когда я пытаюсь их зарегистрировать, я получаю объект длиной 0 .

Все эти журналы просто возвращают объекты длиной 0 . Попытка зарегистрировать .html() приводит к выводу undefined , а попытка регистрации .text() приводит к пустой строке для вывода. Образец страницы для справки находится здесь. Элемент, к которому я пытаюсь получить доступ, — это рекламное объявление вверху («Химические принципы с приложениями . »), и его расположение в HTML (на несколько уровней в глубину) можно найти, проверив элемент.

3 ответа

Попробуйте что-то вроде этого

JQuery требует, чтобы древовидная структура проходила и выполняла свои операции. Прямая попытка использовать .find() без корневого элемента не сработает. В приведенном выше случае $(‘

Если вы успешно получаете HTML-код и не сталкиваетесь с проблемами Access-Control-Allow-Origin, я протестировал следующее для работы в тестовых случаях:

Если вы можете console.log (siteHTML) и он дает вам вывод, тогда вы сможете запросить ответ с помощью jQuery, однако могут быть некоторые ограничения на то, какие селекторы запросов работают, когда HTML не добавляется в DOM.

Если вы выполните «Просмотр источника страницы» для образца страницы, на которую вы указали ссылку, вы обнаружите, что искомый элемент выглядит следующим образом:

Источник

не срабатывает Ajax запрос

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Почему не срабатывает Ajax запрос?
Добрый день! Не пойму почему не срабатыват запрос. 7

Так тоже страница перегружается Вот точно какая-то мелочь где-то, которую не заметно

Добавлено через 9 минут
Вот, если я ставлю вместо , то не перегружается, но тогда PHP скрипт не срабатывает

ТАк, вроде отработал аякс, но теперь PHP не работает вообще и если меняю type на JSON, То вообще ничего не происходит. Ты бы не мог проверить у себя мой код? Может ты увидишь что не так?

Вчерашний день прожил без интернета, отвечаю только сегодня.
Итак, подытожим, Вы желаете чтобы пользователь вводил в поле адрес сайта, отправлял его и в ответ получал содержимое из meta content=»содержимое» . (Правильно понял?) Это содержимое нужно куда — то поместить. Я выбрал блок с

Код главной страницы (! в демостранице — вбил адрес форума по умолчанию, чтобы не вводить вручную при проверках, здесь оставил как было):

Не всегда срабатывает ajax
Доброго времени суток. Делаю сайт по нахождению оптимального пути по алгоритму Дейкстры.. При.

Не всегда срабатывает ajax метод
Здравствуйте, подскажите пожалуйста, почему не всегда срабатывает ajax запрос? Делаю универсальную.

Источник

Читайте также:  Карпрайс для дилеров не работает
Оцените статью