如何通过jQuery选择文本的一部分并进行处理?例如,我有一个文本
<div id="test">This is an example text here</div>
我用鼠标选择了几个单词(不是整个div),并希望在
中显示这些单词(#test
的一部分)
<div id="target"></div>
答案 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();
}
});
};
答案 4 :(得分:1)
您必须使用http://www.examplet.buss.hk/jquery/caret.php插件,才能轻松获取所选文字
//在id =“box1”的输入框中获取起始位置 $( “#BOX1”)。插入符号()。启动
//得到结束pos $( “#BOX1”)。插入符号()。端
//获取所选文字 $( “#BOX1”)。插入符号()。文本
答案 5 :(得分:0)