selectionStart表示非textarea元素

时间:2010-12-15 19:10:29

标签: javascript jquery

$(element)[0].selectionStart似乎只适用于textareas。是否有替代非textareas

我正在尝试用标签中的DOM元素包裹字符串(粗体,斜体......)

另外,如何撤消包装?

2 个答案:

答案 0 :(得分:9)

这是一个棘手的领域。您需要Selection对象和DOM Range。但是,IE完全不同于正确的浏览器。

在标签内包装选择通常也是非常重要的:您需要考虑选择中的所有文本节点。

我的Rangy库规范了IE的Selection / Range API,并且有一个module to apply a CSS class to a selection,这可能会在某种程度上帮助你。我还计划编写一个更通用的模块,用于将其他样式应用于选择/范围。

对于无耻的自我推销感到抱歉,但是自己写了很多代码,我不知道还有什么建议。

答案 1 :(得分:0)

使用jQuery fieldSelection插件 http://plugins.jquery.com/project/fieldselection

我在我的脚本中使用它来删除粘贴上的标签,它看起来效果很好。 http://blog.brokenbytes.info/2010/09/stripping-tags-on-paste-using-jquery/