在文本框中,对所选文本应用样式。

3
我有以下代码。
   $('#txtEditor').select(function (e) {
        var start = e.target.selectionStart;
        var end = e.target.selectionEnd;
        selText = $('#txtEditor').val().substring(start, end);
    });

<asp:TextBox ID="txtEditor" runat="server" TextMode="MultiLine" Width="500px" Height="500px" Font-Size="Large"></asp:TextBox>

我希望能够对文本框中选定的文本应用一些样式(如颜色、加粗或斜体等)。在selText中,我获取了所选字符串。但是我找不到任何事件或函数,只能将样式应用于文本框中选定的字符串。


这个链接对你来说可能是一个选择吗? - Niklas
TextBox 是否等同于 <textarea>?如果是 textarea,则无法更改其中一部分的样式。 - Steely Wing
如果有人知道如何做到这一点,请帮助我。 - Sudha
是的,我的目标是创建一个。这些是初步的疑问。 - Sudha
我还没有得到解决方案。如果是在一个div中,那就没问题了。但是我无法通过文本框完成它。 - Sudha
显示剩余4条评论
2个回答

2

这里是完整的解决方案...SUDHA

http:// js fiddle .net/ sandeepvirani/ mzays/

移除

之间的空格。


1
嗯...为什么一开始要加空格呢? - Mr Lister
@Sandeep Virani,我已经尝试了这个例子。问题是它可以用于“div”,但无法用于我的“textbox”。我该如何修改js文件以满足我的要求? - Sudha
在我的文本框中,内容(字符串)是动态输入的,我想为选定的部分设置样式。(就像我们可以在MSWord或其他软件中做的那样) - Sudha
@Mr Lister:stackoverflow不允许我放置jsfiddle的链接,这就是原因。 - Sandy
我还没有得到解决方案。如果它在一个div中,那就没问题了。但是我无法通过文本框完成它。 - Sudha

0

要更改页面上文本选择部分的颜色,请使用 CSS ::selection 伪元素。

请参见 MDN 文档

请注意:

  • 这是一个非标准选择器,虽然受到许多浏览器的支持,但并未得到 W3C 的认可。
  • 你不能更改任何属性,实际上只能更改颜色。不加粗!

如果您想更改段落或其他文本中的某些文本,可以使用 Javascript 快速将整个所选内容放入新元素中,例如 span,然后对 span 应用属性。但是,如果是文本框中的文本,则无法添加子元素到 input 中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接