2016-08-15 7 views
0

私は自分のウェブサイト用のテキストエディタを作っていますが、テキストが出現するたびにハイライト表示されるfind-and-replace関数が必要です。それを置き換えます。次に、次のオカレンスに移動し、同じことを行います。 私はこのコードを見た: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要素ではなく、テキストエリアで動作し、また、それは、見つけおよび/または一度発生のすべてを置き換えますそれらを1つずつ反復するのではなく、

どうすればこの作品を作成できますか?

答えて

0

コードが<Div>タグで動作している場合は、divタグを使用する必要があります。そのdivタグを編集可能にするだけです。

はこれを試してみてください:

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

のcontentEditable属性は、要素の内容が編集可能かどうかを指定します。

+0

私はtexareaを使用しています。その 'selectionStart'と' selectionEnd'プロパティを使いたいと思います。 – TricksfortheWeb

関連する問題