Как выделить текст с помощью jQuery - PullRequest
3 голосов
/ 03 января 2012

Как я могу выделить часть текста и обработать с помощью jQuery?Например, у меня есть текст как

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

Я выбираю несколько слов (не весь div) с помощью мыши и хочу показать эти слова (часть #test) в

<div id="target"></div>

Ответы [ 6 ]

4 голосов
/ 03 января 2012

Если вы имеете в виду под выделенным текстом, а затем показать его в элемент.

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());
2 голосов
/ 03 января 2012

Вот как.Следующее работает во всех основных браузерах, включая 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() );
2 голосов
/ 03 января 2012

Вы можете использовать текстовый метод , например, так:

(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);
    }
  });
});
1 голос
/ 03 января 2012

Вы должны использовать плагин http://www.examplet.buss.hk/jquery/caret.php, и вы можете легко получить выделенный текст

// Получить стартовый pos в intput box с id = "box1" $ ( "# Box1"). Каретку (). Начать

// Get end pos $ ( "# Box1"). Каретка (). Конец

// Получить выделенный текст $ ( "# Box1"). Каретка (). Текст

1 голос
/ 03 января 2012
$.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/

0 голосов
/ 03 января 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...