Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010
Помог: 1 раз(а)
В jquery, чтобы вставить html в объект нужно использовать метод html(), а что использовать, чтобы получить html из объекта? я использую тот же метод html(), но возвращается текст, в котором отстутствуют теги. В чистом js есть метод innerHtml, который работает, как мне надо, но поскольку я использую jquery, то хотелось бы узнать, как получить обратно html из объекта?
garvey
Отправлено: 13 Марта, 2011 - 15:25:05
Частый посетитель
Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010 Откуда: Minsk
Помог: 3 раз(а)
html() - это тот же innerHtml. И он возвращает HTML при правильном использовании. Пригласите ваш код сюда. Очевидно, что вы делаете что-то неправильно.
data - это полученный через ajax html. (Добавление)
html данные находятся в теге <page_content>данные</page_content>
Сначала я создаю дерево объектов следующим образом $(data),
затем мне нужно получить содержимое тега <page_content> и
я использую метод html(). Затем вставляю все на страницу. Но в итоге на
страницу вставляется голый текст, без разметки, то есть без тегов.
garvey
Отправлено: 13 Марта, 2011 - 15:39:51
Частый посетитель
Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010 Откуда: Minsk
Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010
Помог: 1 раз(а)
что-то не понял. Я выводил alert'ом содержимое data - это html.
$(data) - создает дерево объектов. Здесь data это не селектор, на место data подставится
html, что в свою очередь создает дерево объектов по-моему.
garvey
Отправлено: 13 Марта, 2011 - 16:27:22
Частый посетитель
Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010 Откуда: Minsk
Помог: 3 раз(а)
Это по вашему. А я советую читать документацию. $(SELECTOR) - получаем элемент или группу элементов.
Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010
Помог: 1 раз(а)
garvey пишет:
Это по вашему. А я советую читать документацию. $(SELECTOR) - получаем элемент или группу элементов.
у $() несколько вариантов работы, не только с селектором, вот вам пример:
$(html)
Позволяет создать html-элементы «на лету» из «чистого» HTML. Например, можно создать элемент div, содержащий параграф с текстом «Ба-бах!» и добавить его к элементу с id="body" таким образом:
var my_div = $("<div><p>Ба-бах!</p></div>");
my_div.appendTo("#body");
Или еще короче:
$("<div><p>Ба-бах!</p></div>").appendTo("#body");
Элемент до отработки скрипта:
<div id="body"></div>
Элемент после отработки скрипта:
Данный плагин не помог. Часть тегов пропадает. На чистом js конечно можно организовать, но цель была попрактиковаться с jquery. (Добавление)
Можно конечно получив html данные сразу подставить в нужное место вот так:
Все работает, но! Я хочу вернуть в одном запросе страничную навигацию + данные страницы, чтобы не делать два отдельных запроса. Поэтому ответ сервера выглядит вот так:
В результате data_tree является объектом page_content, а page_navigation игнорируется, в общем тот тег, который находится выше, а это page_content преобразуется в дерево, а все, что ниже игнорируется.
Тогда я решил сделать по-другому чуть-чуть, а именно вот так:
// здесь $('#page_content) - это div в документе, куда нужно подставить полученные данные
В результате все подставилось как надо! За исключением того, что все теги, полученные от сервера куда-то пропали, подставился текст, содержащийся в этих тегах.
Вся проблема в том, что вот этот фрагмент из предыдущего кода возвращает не html, а обычный текст
:
Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010
Помог: 1 раз(а)
А не нужно использовать ф-цию eval, чтобы с полученными данными можно было работать, как с объектами?
И еще небольшой вопрос. Во всех браузерах после получения данных через ajax с последующей подстановкой этих данных на страницу они отображаются, но в мозиле они подставляются, но не отображаются, что за чудеса? фаербагом смотрел - данные подставились, но не отображаются, в чем же дело? (Добавление)
и небольшой вопросик немножко не по теме. вот код:
Почему так происходит? А главный вопрос - при отправке формы на сервер будут ли на сервере доступны значения тегов textarea? Ведь тег form не оборачивает теги textarea.
Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010
Помог: 1 раз(а)
DeepVarvar пишет:
Pavelbeginner пишет:
использовать ф-цию eval
Нет, JSON уже "обьект".
Pavelbeginner пишет:
но не отображаются
Pavelbeginner пишет:
style="display:none">
?????????
по-моему вы ошибаетесь на счет джейсона. Да, это по сути уже объект, но, когда получаешь этот объект - это всего лишь строка, ее нужно присвоить переменной, затем вызвать метод eval и передать ему строку с json данными. только тогда мы получим объект.
А display:none я указал потому, что браузер google chrome почему-то выносит тег form над тегами td, хотя у меня в документе теги td обернуты тегом form. Я убирал display:none, все равно данные есть на странице, но они не отображаются.
DeepVarvar
Отправлено: 14 Марта, 2011 - 06:25:46
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
То есть, как я понимаю, при отправке формы ни один элемент формы, такие как textarea, input не будут доступны на сервере т.к. в хроме форма уже не оборачивает ни один из тегов textarea?
Viper
Отправлено: 14 Марта, 2011 - 07:43:30
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
Pavelbeginner не пробовали сначала w3c валидатором страницу проверить, а уже потом мучать браузеры?
Pavelbeginner и с какого перепугу вы взяли что можно делать так ?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.