2010-07-20 103 views
0

例如,我使用下列的函數:有沒有辦法更新dom而不影響鼠標光標?

$('body').html(function(i,html) { 
    var arr = html.split(". "); 
    arr[arr.length-1]="<span class='findme' >"+arr[arr.length-1]+"</span>&nbsp;"; 
    alert(arr) 
    return arr.join(". "); 
}); 

問題是,它從用戶打字移動光標離開。有沒有人看過這個?

回答

1

通過設置任何元素的HTML,你基本上重置了它的所有內容!所有事件處理程序,所有狀態和DOM屬性,這包括當前具有「焦點」的任何元素。

按照預期使用DOM API。

它看起來像你想要在頁面中的最後一個段落後跟一個<span>包裝內容。爲了正確執行此操作,您需要遍歷DOM檢查包含句點的文本節點,然後用<span>元素替換上次找到的文本節點的一部分。

+0

+1。 J-P是絕對正確的:你必須處理文本節點而不是HTML字符串。 – 2010-07-20 08:25:09

+0

有趣的是,你能提供一個處理文本節點的例子嗎? – WozPoz 2010-07-20 14:25:44

+0

還會用文本節點不會影響鼠標嗎? – WozPoz 2010-07-20 14:26:26