使用javascript将所选文本设为粗体

Sil*_*ght 1 javascript jquery range

我的标记中有一个文本:

<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Vestibulum condimentum consectetur tellus, at bibendum felis ultrices eu.
Nullam nibh urna, euismod a blandit ut, fermentum a leo. Maecenas pharetra elementum fringilla.
Quisque condimentum, nibh quis elementum porttitor, magna libero malesuada dolor, ut feugiat tortor lectus ac turpis. Integer tristique molestie enim, sit amet commodo risus tempus non.
</div>
Run Code Online (Sandbox Code Playgroud)

当用户选择文本并按CTRL + Enter时,我想用<b></b>标签包装所选文本.我得到了所选文本,但无法找到如何用标记包装它.这是我有的:

function getSelectedText () {
    if (window.getSelection) {
        return window.getSelection ().toString ();
    }
    else {
        if (document.selection) {
            return document.selection.createRange ().text;
        }
    }
    return '';
}

$ (document).ready (function() {

    // User pressed a key 
    $ (document).keydown (function(e) {
        // is it CTRL+ENTER?
    if (e.which == 13 && e.ctrlKey) {
            alert('You have selected ' + getSelectedText ());
            // now I need to highlight the text I got
            // ????
    }
    });
});
Run Code Online (Sandbox Code Playgroud)

请注意!一个简单的查找/替换不起作用,如果用户选择了一个可以在文本中找到10次的单个'a'字母,我想突出显示他选择的唯一'a'.我研究了范围对象,但无法弄清楚如何实现它,请帮帮我.

请参阅jsfiddle的演示.

Jam*_*iec 5

也许这可以帮助您:http://code.google.com/p/rangy/

其中一个例子正是你所追求的.