Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript将所选文本设置为粗体_Javascript_Jquery_Range - Fatal编程技术网

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

使用javascript将所选文本设置为粗体,javascript,jquery,range,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.

我的标记中有一个文本:

<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>
请注意简单的查找/替换不起作用,如果用户选择了一个字母“A”,并且可以在文本中找到10次,我想突出显示他选择的唯一字母“A”。我研究过射程物体,但不知道如何实现,请帮我解决


请参见演示。

也许这可以帮助您:


其中一个问题正是您所追求的。

也许这可以帮助您:


其中一个正是您想要的。

您可以使用
document.execCommand()
来实现此目的。下面是我对一个类似问题的回答:

您可以使用
document.execCommand()
来实现此目的。下面是我对一个类似问题的回答:

这是有效的(在Chrome中),但只要它只被调用一次

(运行代码在)

$(文档)。按键(功能(e){
如果(e.which==13&&e.ctrlKey){
var s=getSelection();
var i=基准偏移量;
var j=s.extentOffset;
var t=$('div').text();
var t0=t.子串(0,i)+”+
t、 子串(i,j)+”+
t、 子串(j);
$('div').html(t0);
}
});
它只工作一次的原因是它修改DOM以添加标记,这意味着下次选择偏移量和元素不连续。我仍然在看…

这是可行的(在Chrome中),但只要它只被调用一次

(运行代码在)

$(文档)。按键(功能(e){
如果(e.which==13&&e.ctrlKey){
var s=getSelection();
var i=基准偏移量;
var j=s.extentOffset;
var t=$('div').text();
var t0=t.子串(0,i)+”+
t、 子串(i,j)+”+
t、 子串(j);
$('div').html(t0);
}
});
它只工作一次的原因是它修改DOM以添加标记,这意味着下次选择偏移量和元素不连续。我还在看那个

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
            // ????
    }
    });
});
$(document).keypress(function(e) {
    if (e.which == 13 && e.ctrlKey) {
        var s = getSelection();
        var i = s.baseOffset;
        var j = s.extentOffset;
        var t = $('div').text();
        var t0 = t.substring(0, i) + '<span class="b">' +
                 t.substring(i, j) + '</span>' +
                 t.substring(j);
        $('div').html(t0);
    }
});