Как получить нормальные атрибуты элемента при выборе с помощью jQuery? - PullRequest
2 голосов
/ 20 июня 2011

У меня есть текстовое поле, которое я выбираю с помощью jQuery, и я хочу найти положение курсора внутри него. Я обнаружил, что в обычном JavaScript вы можете сделать это с .selectionStart, но выполнение $("#maintext").selectionStart приводит к undefined.

Как я могу это сделать?

Ответы [ 3 ]

5 голосов
/ 20 июня 2011

selectionStart является собственным свойством DOM, поэтому попробуйте это:

var selStart = $('#maintext').get(0).selectionStart;

Причина этого заключается в том, что $('#maintext') возвращает массив JOM-объектов, обернутых в jQuery, и для вызова нативного метода необходимо получить базовый элемент.

3 голосов
/ 20 июня 2011

В этой ситуации может быть случай для простого:

document.getElementById("maintext").selectionStart

и не имеет накладных расходов на создание нового объекта jQuery.

0 голосов
/ 21 июня 2011

В jQuery 1.6 вы можете использовать prop(). В более старых версиях можно использовать attr().

$("#maintext").prop("selectionStart");

Однако свойства selectionStart и selectionEnd не поддерживаются в IE <9. Я опубликовал кросс-браузерную функцию, чтобы обойти это в нескольких местах в переполнении стека (например, <a href="/180747/kak-poluchit-pozitsiy-stolbtsa-karetki-ne-pikselei-v-tekstovoi-oblasti-v-simvolah-s-samogo-nachala#180756"> здесь ), или вы можете использовать мой jQuery-плагин для работы с текстовой областью / выборками ввода текста.

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