jquery post data
Всем привет. Некоторое время назад уже задавал похожий вопрос. Но все таки хотел, уяснить для себя эту тему.
Мне нужно при отправке post запроса отобразить фрагмент полученный с сервера. $('#div').append(data); // Так получаю все что приходит с сервера $('#div').append($('<div>').html(data).find('#one').html()); // Так получаю ответ находящийся в <div id='one'> Все вроде работает. Но хочется более красивой реализации. Да и понять эту тему хотелось бы... Может кто нибудь объяснить?! |
Красиво - это когда сервер выдает только то, что тебе требуется. А не генерит по-напрасну целую страницу, которая почти целиком, кроме #one пойдет в утиль. За такое по рукам надо бить :-/ .
|
Цитата:
Она вся необходима иначе бы я не стал заставлять сервак чрезмерно напрягаться. Я пока еще в своем уме. И вопрос касался не этого. И все таки как лучше вывести фрагмент кода с сервера в отдельный div при помощи jquery? |
Задача - распарсить html. Для начала - что тебе шлет сервер? Страницу, включая doctype, или фрагмент?
Если страницу, то для парсинга подойдет DOMParser, причем в jQuery он не используется. Для дальнейшего импорта узлов - document.importNode() Если фрагмент, то в браузере нет API для парсинга фрагмента (и наверное быть не может). В таком случае нужно создать элемент-контекст данного фрагмента (а для этого ты должен заранее знать для какого контекста предназначен фрагмент). Обычно подходит <div>. И присвоить innerHTML, и тогда браузер автоматически запустит парсер в режиме парсинга фрагмента и создаст DOM. Ну а далее делаешь выборку элементов и добавляешь их в DOM документа. var $context = $('<div/>', {html: response}); $div.append($context.find('#one')); $div.append($context.find('#two')); |
Часовой пояс GMT +3, время: 09:18. |