jQuery - получить абзац, длину и т. д. - PullRequest
0 голосов
/ 10 августа 2011

Я пытаюсь сделать что-то, что, на мой взгляд, должно быть просто сделать в jQuery.

У меня длинный текст на моем сайте.Когда пользователь выбирает (выделяет) текст, мне нужно получить следующую информацию:

  • Абзац, где выбор начинается с
  • Символ в этом абзаце, с которого начинается выбор
  • Длина выделения
  • Абзац, где выбор заканчивается в (если выделение выходит за пределы одного абзаца)
  • Символ в этом абзаце, где заканчивается выбор

Спасибо вперед;)

Ответы [ 3 ]

1 голос
/ 10 августа 2011

Я думаю, что уже отвечал на все эти вопросы о переполнении стека. В свою очередь:

  • Комбинация getAncestor() из здесь и getSelectionBoundaryContainerElement() из здесь сделает работу
  • Это зависит от того, что вы подразумеваете под "символом в этом абзаце, с которого начинается выбор". Если у абзаца могут быть другие элементы внутри, а не только один текстовый узел, это становится немного сложнее. Вы можете адаптировать это .
  • Опять же, это зависит от того, что вы подразумеваете под "длиной выделения". Вы можете получить выделенный текст в виде строки и использовать его свойство length.
  • См. Ответы для выбора начала
  • См. Ответы для выбора начала

Для этого вам нужно будет немного изучить API, что неплохо.

1 голос
/ 10 августа 2011

Вам нужно использовать JavaScript для всего, что связано с выделением текста. В jQuery нет встроенной функции для определения, где начинается выбор или где он заканчивается. Rangy http://code.google.com/p/rangy/ может быть чем-то, что вы можете использовать для этой цели.

0 голосов
/ 10 августа 2011

тренировка с

window.getSelection
document.getSelection
document.selection.createRange()

Смотрите пример на этом сайте: http://www.codetoad.com/javascript_get_selected_text.asp

...