跨浏览器选择文本的方式

时间:2014-02-17 12:11:15

标签: javascript jquery selection

我有一个p元素,如何使用跨浏览器的JavaScript选择内部文本?

<p>Some Text to select</p>

我想在点击时选择该文本(例如当您使用mousedown并移动光标时)。它可以是jQuery解决方案。

3 个答案:

答案 0 :(得分:3)

在@ADNow的评论帮助下,我能够编写选择文本的jQuery插件,我删除了$ .browser,因此它适用于jQuery&gt; 1.9。

$.fn.sel = function() {
    var node = this[0];
    if (document.body.createTextRange) {
        var range = document.body.createTextRange();
        range.moveToElementText(node);
        range.select();
    } else if (window.getSelection) {
        var selection = window.getSelection();
        if (selection.setBaseAndExtent) {
            selection.setBaseAndExtent(node, 0, node, 1);
        } else if (document.createRange) {
            var range = document.createRange();
            range.selectNodeContents(node);
            selection.removeAllRanges();
            selection.addRange(range);
        }
    }
};

答案 1 :(得分:0)

如果你想在一个小于jQuery的小型库中使用它,那么你可以使用Sizzle引擎(构建jQuery选择器)。缩小时只有4K大小。

http://sizzlejs.com/

答案 2 :(得分:0)

document.getElementsByTagName('p')[0].innerHTML

或通过类或id挂钩元素。在这种情况下,我使用p标签的数组,第一个元素使用0