Может ли jQuery работать с частичными элементами?(диапазоны) - PullRequest
2 голосов
/ 07 июня 2011

Возможно ли в jQuery работать с частичными элементами (иначе говоря, диапазонами)?Возможно нет, но кто-нибудь знает какие-либо плагины?- или кто-нибудь хотел бы сотрудничать со мной в создании такого плагина?

По сути, это функциональность, к которой я стремлюсь:

var $el = $('<div>a b c d</div>');

$el.range(2,3).wrap('<strong>');
console.log($el.html()); // a <strong>b</strong> c d

$el.range(4,5).addClass('super');
$el.range(4,5).addClass('awesome');
console.log($el.html()); // a <strong>b</strong> <span class="super awesome">c</span> d

$el.range(2,5).addClass('shweet');
console.log($el.html()); // a <span class="shweet"><strong>b</strong> <span class="super awesome">c</span></span> d

$el.range(2,5).start; // 2
$el.range(2,5).finish; // 5

$el.range(); // returns $el

$el.selection(); // returns the partial element (aka range) for the current selection
$el.selection(2,5); // would select 'b c', and return their partial element (aka range)

$el.currentLine(); // returns the partial element (aka range) for the current line

Должна также работать точно так же и на textareas.

Ответ может быть либо в coffeescript, либо в javascript.

Список изменений:

  • Добавлено $el.selection()
  • Добавлено $el.currentLine()

1 Ответ

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

Здесь есть попытка сделать плагин.Единственная проблема заключается в том, что после первого вызова .range добавляется некоторый HTML, поэтому для следующего вызова символы от 4 до 5 не будут одинаковыми.Все еще ищу способ решить эту проблему.

Обновление

Я изменил плагин ОЧЕНЬ.Сейчас это не очень красиво, но работает.Посмотрите, как это работает здесь .

Все .spanAddedRange действительно необходимы, потому что они должны быть добавлены с оригинальным html, и в этот момент вы не можете знать значения, которые будут использоваться дляВызовите .range метод.

Обновление

Теперь следует функциональность Slices в HTML5 Edit проекте

...