Владимир Сергеев, я бы сам в таком поучаствовал, как минимум потому что я вообще не представляю, что можно в принципе сделать такого в стенах школы, что может уберечь меня от ядерного взрыва.
Дима Турков, это не в рамках спора, но всё же смысл в логике: вам нужно привязать произвольное значение к элементу, и вы вместо того, чтобы банально сохранять прямо в него, делаете вызов функции из сторонней библиотеки и создаёте отдельные структуры данных для хранения.
"Если вам так нравится, пожалуйста, я не против))" - ну так я же не собираюсь вас убеждать ни в чем; просто поинтересовался почему вы выбрали такой путь, какие вы видите в нём преимущества, может я тоже чего-то не понимаю.
Дима Турков, this._old_value - свойство объекта, связанного с текущим инпутом. Можно было его назвать как угодно, хоть "старое значение инпута"
"Я создаю дата атрибут с указанным значением." - не, атрибут не создается, вы создаёте свойство в скрытом объекте который за вас создаёт jQuery, а я создаю свойство прямо в элементе (грубо говоря). Разницы я не вижу никакой, поэтому и спрашиваю.
Дима Турков, просто интересуюсь - почему вы решили сохранить так - $(this).data('old-value', $(this).val());, а не так - this._old_value = $(this).val();?
Ну, в целом способ норм, только проверять надо не текст, а какие ноды попали в selection. Это проще - достаточно проверить выделены ли целевые ноды, и всё.