Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.01.2010, 06:43
Кандидат Javascript-наук
Отправить личное сообщение для Бобр Посмотреть профиль Найти все сообщения от Бобр
 
Регистрация: 03.11.2008
Сообщений: 116

Как текст из responseText преобразовать в теги?
Как текст из responseText преобразовать в теги?

Получаю с сервера страничку через req.responseText, как в примере тут в статьях. Могу её посмотреть через alert(req.responseText). Но мне надо не весь её текст вывести на основную страницу, а лишь выудить из него некоторую часть от одного тега до другого. Как это можно сделать?

Регулярными выражениями как-то не очень хочется это делать. Хочется нормальную иерархию, чтобы можно было через getElementById('tag1') и getElementById('tag2') получить нужные теги, потом взять всё, что между ними и вывести. Можно так?
Ответить с цитированием
  #2 (permalink)  
Старый 22.01.2010, 08:27
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

req.responseXML

Либо временно вставлять на страницу свойством innerHTML, а потом парсить.

Если используешь responseXML, в ИЕ после нахождения нужных узлов добавлять в DOM нужно примерно так:
куда_вставлять.innerHTML = полученные_узлы.xml;

Последний раз редактировалось B~Vladi, 22.01.2010 в 08:32.
Ответить с цитированием
  #3 (permalink)  
Старый 22.01.2010, 09:19
Кандидат Javascript-наук
Отправить личное сообщение для Бобр Посмотреть профиль Найти все сообщения от Бобр
 
Регистрация: 03.11.2008
Сообщений: 116

req.responseXML равен null.

а req.getResponseHeader("Content-Type") равен "text/html; charset=windows-1251"

Цитата:
Либо временно вставлять на страницу свойством innerHTML, а потом парсить.
Я не хочу вставлять в страницу. Хочу просто объект.
Ответить с цитированием
  #4 (permalink)  
Старый 22.01.2010, 10:07
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Бобр
req.responseXML равен null.
Значит невалидный xml у тебя. Объект xmlHttpRequest предназначен для получения xml или текста, а не html.
Сообщение от Бобр
Я не хочу вставлять в страницу. Хочу просто объект.
Если хочешь получить как html - делай как я описал. Можешь не в страницу вставлять, а в созданные DOM-узел через innerHTML и работай как с html.
Ответить с цитированием
  #5 (permalink)  
Старый 22.01.2010, 10:58
Кандидат Javascript-наук
Отправить личное сообщение для Бобр Посмотреть профиль Найти все сообщения от Бобр
 
Регистрация: 03.11.2008
Сообщений: 116

Сообщение от B~Vladi
Если хочешь получить как html - делай как я описал. Можешь не в страницу вставлять, а в созданные DOM-узел через innerHTML и работай как с html.
Можно пример кода?
Ответить с цитированием
  #6 (permalink)  
Старый 22.01.2010, 11:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

var temp=createElement('div');
temp.innerHTML=req.responseText;
var tag1=temp.getElementById('tag1');
Ответить с цитированием
  #7 (permalink)  
Старый 22.01.2010, 11:40
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Gvozd
var tag1=temp.getElementById('tag1');
getElementById есть только у документа. Хотя, судя по 'tag1', тут опечатка.
Ответить с цитированием
  #8 (permalink)  
Старый 22.01.2010, 17:51
Кандидат Javascript-наук
Отправить личное сообщение для Бобр Посмотреть профиль Найти все сообщения от Бобр
 
Регистрация: 03.11.2008
Сообщений: 116

Gvozd,
Спасибо! Понял.

А как мне получить все теги от "tag1" до "tag2"? В промежутке.
Ответить с цитированием
  #9 (permalink)  
Старый 22.01.2010, 18:05
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Бобр
А как мне получить все теги от "tag1" до "tag2"? В промежутке.
Точнее никак?! Получить все теги 'tag1' и 'tag2' ? Если да, то используй document.getElementsByTagName.

Если нет - учить DOM.
Ответить с цитированием
  #10 (permalink)  
Старый 22.01.2010, 18:19
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Бобр
А как мне получить все теги от "tag1" до "tag2"? В промежутке.
всмысле которые находятся в обычном HTML-коде между двумя тегами?
готового метода в JS нету
только самому писать
общее(когда эти два тега на разных уровнях вложенности, и не являются потомками друг друга) решение будет довольно сложным
для частного решения же вы дали мало инфы.
для общего случая гораздо проще будет использовать регулярку
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Вопрос по относительному позиционированию DIV XPOMOB (X)HTML/CSS 11 15.07.2009 17:02
Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров? Andrey32 jQuery 3 23.05.2009 01:33
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42