jQuery能处理分部元素吗?(范围)



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

在文本区域上也应该完全相同。

答案可以是coffeescript或javascript。

变更日志:

  • 添加$el.selection()
  • 添加$el.currentLine()

这里有一个插件的尝试。唯一的问题是,在第一次调用.range之后,添加了一些HTML,因此对于下一次调用,从4到5的字符将不相同。仍在寻找解决这一问题的方法。

更新

我已经更改了很多插件。现在它不是很漂亮,但它很管用。看着它在这里工作。

所有.spanAddedRange都是必需的,因为它们必须与原始html一起添加,而此时您无法知道将用于调用.range方法的值。

更新

现在HTML5编辑项目中的Slices功能成功了

相关内容

  • 没有找到相关文章

最新更新