使用Jquery突出显示更长的选择?

时间:2014-09-12 15:18:41

标签: javascript jquery html

in this jsfiddle

我试图使用Jquery突出显示文本,它适用于较短的选择(如3到5个单词),但选择时间不长(参见附图)

单击突出显示链接时,所选文本应更改为黄色。

enter image description here

每当我尝试做更长的选择时,我都会收到此错误:

Uncaught TypeError: Cannot read property 'replace' of undefined

您可以在jsfiddle.

上找到整个代码

1 个答案:

答案 0 :(得分:0)

试试这个。

$(document).on( "click", ".share_link", function() {

    var sel = window.getSelection ? window.getSelection() : document.selection.createRange(); // FF : IE
    if(sel.getRangeAt){ // thats for FF
    var range = sel.getRangeAt(0);
    var newNode = document.createElement("span");
    newNode.setAttribute('class', 'high');
    range.surroundContents(newNode);
    } else { //and thats for IE7
    sel.pasteHTML('<span class="someclass">'+sel.htmlText+'</span>');


    }
    });

FIDDLE:http://jsfiddle.net/yc2gouk3/

这适用于长选择