簡體   English   中英

在不丟失事件的情況下查找+替換元素的內容

[英]Find + replace content of an element without losing events

我有一個函數可以讀取元素的內容,用鏈接替換一個單詞,然后將內容重寫回元素。 顯然,這意味着之前設置的所有事件都將丟失。

有誰知道可以在不丟失事件的情況下查找和替換元素內容的函數/方法?

編輯:不使用庫

這是我當前的代碼,它不會破壞事件,而是將< ,例如,變成&lt; ,所以我不能附加 HTML。 這是我得到的最接近的:

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

我的原始代碼工作但擺脫了事件:

element.innerHTML += content;

通過使用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;

編輯2:

另一種選擇是將要替換的文本包裝在單獨的標簽內,例如<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 標記的內容,而保持周圍元素不變。

假設標簽只包含文本(而不是其他標簽):

element.firstChild.nodeValue=content;

https://jsfiddle.net/Abeeee/ubj6hte4/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM