Я хотел бы заменить весь текст в каком-либо элементе (включая текст у детей) другим текстом. Так, например, HTMLУдалить текст из элемента без удаления ссылки
<div id="myText">
This is some text.
This is some other text.
<p id="toHide">
This is even more text.
Click this text to hide it.
</p>
</div>
должен стать
<div id="myText">
That is some text.
That is some other text.
<p id="toHide">
That is even more text.
Click That text to hide it.
</p>
</div>
По существу, я заменил все /this/gi
с "That"
. Тем не менее, я не могу использовать следующее:
$("#myText").innerHTML = $("#myText").innerHTML.replace(/this/gi, "");
Это потому, что я держу много ссылок на детей myText
. Эти ссылки будут удалены. Я понимаю, что в простых случаях я могу просто обновить эти ссылки, но у меня есть довольно большой файл и множество ссылок (и было бы неприятно и подвержено ошибкам обновлять каждую ссылку при каждом вызове этой функции).
Я также храню некоторые данные, которые не видны innerHTML
. Например, я использую
$("#toHide").test = "test";
Это теряется при записи innerHTML
.
Как заменить текст в div без innerHTML
(желательно без jquery)?
Jsfiddlehttp://jsfiddle.net/prankol57/ZEfM7/
@Oriol Я использую '$' в качестве ярлыка для 'document.querySelector' (см jsfiddle) – soktinpk