Найти + заменить содержимое элемента без потери событий - PullRequest
2 голосов
/ 30 октября 2010

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

Кто-нибудь знает функцию / метод, который может найти и заменить содержимое элемента без потери событий?

Редактировать: без использования библиотеки

Вот мой текущий код, который не уничтожает события, а превращает <, например, в &lt;, поэтому я не могу добавить HTML.Это самое близкое, что у меня есть:

element.appendChild(document.createTextNode(content));

Мой оригинальный код работал, но избавился от событий:

element.innerHTML += content;

1 Ответ

5 голосов
/ 30 октября 2010

Используя jQuery , вы можете сделать это с помощью метода text ()

var str = $('#element-id').text();
str = yourReplaceFunction(str);
$('#element-id').text(str);

Изменить:

Другой вариант - свойство innerHTML . Это не очень элегантно, но, тем не менее, работает.

var strElem = document.getElementById('element-id');
var str = strElem.innerHTML;
str = yourReplaceFunction(str);
strElem.innerHTML = str;

Edit2:

Еще один вариант - заключить текст, который вы хотите заменить, в отдельный тег, например <span>.

<div id="container">
   <a id="link-with-events">Link</a>
   <span id="replaceable">The Text Gets Replaced</span>
   <a id="more-links-with-events">Another Link</a>
</div>

Тогда вы просто получите доступ и замените содержимое тега span, оставив окружающие элементы нетронутыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...