Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2013, 17:53   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
Вопрос Вставить кусок текстового HTML в DOM как его часть.

Доброго времени суток!

Есть манипуляции с HTML:
Код HTML:
PreprocessBannersList: function() {
var lis = $(w,'BannersList').getElementsByTagName('li');
alert('1');
if(!lis) return;
alert('0');
	for(var i =0; i<lis.length; i++) {
		var s = lis[i].innerHTML;
		s = s.replace('|','"');
		s = s.replace(/\|/g,'"');
		lis[i].innerHTML = s;	
	}
},	
Надо вернуть в lis[i].innerHTML не шифрованый html а нормальный, и вернуть не как текст, а так чтобы браузер отрисовал его как часть DOM.

Как перевести текст HTML в часть DOM?

Используется jQuery.

Человек_Борща вне форума Ответить с цитированием
Старый 18.10.2013, 09:18   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Что-то у тебя странное в коде творится...
Код:
PreprocessBannersList: function() {
var lis = $(w,'BannersList').getElementsByTagName('li');
// Это точно jQuery, а не sizzle какой-нибудь?
// все-таки jQuery возвращает свой объект, у которого нет
// метода .getElementsByTagName(), это метод дом-ноды
// его нет даже у нод-листа [который возвращается от 
// document.getElementsByTagName('li') ]
alert('1');
if(!lis) return;
// предположим, что вначали исправили, теперь в lis будет
// нод-лист, который даже в случае пустого контента не даст false
alert('0');
  for(var i =0; i<lis.length; i++) {
    var s = lis[i].innerHTML;
    s = s.replace('|','"'); // это зачем, если дальше все заменяется, а не только первое?
    s = s.replace(/\|/g,'"');
    lis[i].innerHTML = s; // ну, это самый быстрый способ
    // быстрее, чем создавать ноду/фрагмент, наполнять и потом вставлять
  }
},
В общем, несколько не понял в целом вопроса...
Цитата:
Как перевести текст HTML в часть DOM?
Код:
 $( html.replace(/\|/g, '"') ).appendTo( $parent_or_selector )
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 18.10.2013, 10:31   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Есть некий HTML код который гененриуется брутальной программой в неизвесности.
Программа даже не для веба, но работает с вебом посребством CGI моста и кучи всего всякого. В итоге: парсер XSL, XML не способны зохавать: <I Data="<HTML КОД в нормальном виде>"/>

Потому идет некоторая замена символов. Да костыль, да можно иначе, нет изменить систему нельзя. В итоге обустификацированный HTML поподает в клиентский JS через AJAX.
Коду возвращаю его былой вид, но теперь код - строка. Браузер его видит как "<HTML CODE>". Надо его сделать частью DOM'а, и запилить к <li>, от ul списка.
Человек_Борща вне форума Ответить с цитированием
Старый 18.10.2013, 12:16   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Ну,
Код:
var nodes = $( html )
вернет jQuery объект с вложенным необходимым дом-деревом, при этом не добавляя на страницу.
Или без jQuery:
Код:
function fragment( html ) {
  var fr = document.createElement( 'div' );
  fr.innerHTML = html;
  return fr;
};
Работать с этим добром можно как с обычным дом-деревом.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 18.10.2013, 17:23   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Разобрался, работает. Благодарю!
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан кусок кода. Как мне его расшифровать Klod Помощь студентам 24 13.02.2012 03:03
Как вырезать кусок одного столбца и вставить в другуой? LeGoLaZz Microsoft Office Excel 3 22.09.2011 15:46
Как вставить кусок текста в текст Tomatos Общие вопросы Delphi 5 24.09.2009 21:00
Как можно взять кусок чужой страницы и засунуть его на свою? wis239 PHP 7 12.02.2009 18:11
DOM. как передать HTML разметку badfilin JavaScript, Ajax 3 26.04.2008 20:25