如何使用jQuery选择文本

时间:2012-01-03 12:29:27

标签: javascript jquery jquery-selectors

如何通过jQuery选择文本的一部分并进行处理?例如,我有一个文本

<div id="test">This is an example text here</div>

我用鼠标选择了几个单词(不是整个div),并希望在

中显示这些单词(#test的一部分)
<div id="target"></div>

6 个答案:

答案 0 :(得分:4)

如果您的意思是选择文字,则将其显示为元素。

var selectedText;

if(window.getSelection)
{
    selectedText = window.getSelection();
}
else if(document.getSelection)
{
    selectedText = document.getSelection();
}
else if(document.selection)
{
    selectedText = document.selection.createRange();
}

$('#target').text(selectedText.toString());

或者通过典型地将元素文本显示到另一个元素中,然后使用:

$('#target').text($('#test').text());

答案 1 :(得分:2)

你可以这样使用text method

(function(namespace) {
  namespace.getSelected = function() {
    var t = '';
    if (window.getSelection) {
        t = window.getSelection();
    } else if (document.getSelection) {
        t = document.getSelection();
    } else if (document.selection) {
        t = document.selection.createRange().text;
    }
    return t;
  };
}(Namespace || {}))

$(function() {
  $('#test').on("mouseup", function() {
    var selectedText = Namespace.getSelected();
    if (selectedText) {
      $('#target').text(selectedText);
    }
  });
});

答案 2 :(得分:2)

这是怎么回事。以下适用于所有主流浏览器,包括IE 6。

function getSelectedText() {
    var selectedText = "", sel;
    if (window.getSelection) {
        selectedText = "" + window.getSelection();
    } else if ( (sel = document.selection) && sel.type == "Text") {
        selectedText = sel.createRange().text;
    }
    return selectedText;
}

$('#target').text( getSelectedText() );

答案 3 :(得分:1)

$.fn.selectRange = function(start, end) {
    return this.each(function() {
        if(this.setSelectionRange) {
            this.focus();
            this.setSelectionRange(start, end);
        } else if(this.createTextRange) {
            var range = this.createTextRange();
            range.collapse(true);
            range.moveEnd('character', end);
            range.moveStart('character', start);
            range.select();
        }
    });
};

参考:http://programanddesign.com/js/jquery-select-text-range/

答案 4 :(得分:1)

您必须使用http://www.examplet.buss.hk/jquery/caret.php插件,才能轻松获取所选文字

//在id =“box1”的输入框中获取起始位置 $( “#BOX1”)。插入符号()。启动

//得到结束pos $( “#BOX1”)。插入符号()。端

//获取所选文字 $( “#BOX1”)。插入符号()。文本

答案 5 :(得分:0)