2016-08-15 75 views
0

我正在爲我的網站製作文本編輯器,並且我需要一個查找和替換功能,可以在每次出現文本時突出顯示它,並且如果用戶選擇,取代它。然後它轉移到下一個地方,並做同樣的事情。 我看到這個代碼:使用javascript查找和替換迭代

var haystackText = ""; 
function findMyText(needle, replacement) { 
    if (haystackText.length == 0) { 
      haystackText = document.getElementById("haystack").innerHTML; 
    } 
    var match = new RegExp(needle, "ig");  
    var replaced = ""; 
    if (replacement.length > 0) { 
      replaced = haystackText.replace(match, replacement); 
    } 
    else { 
      var boldText = "<div style=\"background-color: yellow; display: inline; font-weight: bold;\">" + needle + "</div>"; 
      replaced = haystackText.replace(match, boldText); 
    } 
    document.getElementById("haystack").innerHTML = replaced; 
} 

但它只能與具有文本是一個div的作品,而不是一個textarea,像我有,而且,它發現和/或替換所有出現的同時,而不是一個接一個地遍歷它們。

我該如何做這項工作?

回答

0

如果代碼與<Div>標籤一起使用,那麼您應該使用div標籤。只需使該div標籤可編輯即可。

嘗試這種情況:

<div contenteditable="true">This is an editable div</div> 

的CONTENTEDITABLE屬性指定的元素的含量是否可編輯與否。

+0

我正在使用texarea,我想使用它的'selectionStart'和'selectionEnd'屬性。 – TricksfortheWeb