Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Замена html на JvaScript (https://javascript.ru/forum/misc/5526-zamena-html-na-jvascript.html)

sedoi 20.10.2009 23:23

Замена html на JvaScript
 
Как заменить одну строку в html с помощью JavaScript на другую?
Пример строки:
<a id="activity_text" href="#" onclick="activity_editor.show();return false;">
На
<a id="activity_text">

Не где не нашёл :(

x-yuri 21.10.2009 05:47

тебе обработчик надо добавить или что?

micscr 21.10.2009 08:45

var obj=document.getElementById("activity_text"); 
var parent=obj.parentNode;// родитель
var newobj=document.createElement("A");
newobj.id="activity_text";
parent.replaceChild(newobj,obj)


А если один родитель специально сделан, то сразу после строки 2:
parent.innerHTML="<a id="activity_text">";

sedoi 21.10.2009 14:24

Цитата:

Сообщение от x-yuri
тебе обработчик надо добавить или что?

Мне надо чтобы скрипт находил одну строчку в исходнике и заменял на другую, я это засуну в файл js и загружу в оперу, чтобы он при переходе на страницу сразу заменял.

sedoi 21.10.2009 14:39

Цитата:

Сообщение от micscr (Сообщение 33021)
var obj=document.getElementById("activity_text"); 
var parent=obj.parentNode;// родитель
var newobj=document.createElement("A");
newobj.id="activity_text";
parent.replaceChild(newobj,obj)


А если один родитель специально сделан, то сразу после строки 2:
parent.innerHTML="<a id="activity_text">";

Спасибо, но я не понял, куда писать текст на который буду заменять?

micscr 21.10.2009 15:21

Вот тут кстати и идет замена:
parent.innerHTML='<a id="activity_text">';

(изменил кавычки - т.к. с ошибкой было)
В чем логика того что я записал:
1) например на onload body запускается этот скрипт
2) ищет нужный элемент
var obj=document.getElementById("activity_text");
3)потом его родителя
var parent=obj.parentNode;
4) Создается новый объект
var newobj=document.createElement("A");
newobj.id="activity_text";
5) идет замена старого новым, через родителя
parent.replaceChild(newobj,obj)

Это если ищется конкретный объект, как вы указали <a id="activity_text"
Если же ищется просто какой-то текст, чтоб заменить, то на ходу
могу придумать только тяжелое решение:
var text=document.body.innerHTML;
// строковыми методами делаем замену текста
document.body.innerHTML=text;

sedoi 21.10.2009 17:39

спасибо

bios 04.05.2011 19:47

function replaceHtml(el, html) {
	var oldEl = typeof el === "string" ? document.getElementById(el) : el;
	/*@cc_on 
		oldEl.innerHTML = html;
		return oldEl;
	@*/
	var newEl = oldEl.cloneNode(false);
	newEl.innerHTML = html;
	oldEl.parentNode.replaceChild(newEl, oldEl);
	return newEl;
};


Часовой пояс GMT +3, время: 05:09.