如何使用 jQuery 将 css 应用到 savingRange 文本选择?

发布于 2024-10-15 11:10:24 字数 144 浏览 7 评论 0原文

是否可以在 saveRange 文本选择周围应用 css 或包装标签。我正在使用jquery。

这不起作用:

$(savedRange).css(...);
$(savedRange).wrap(...);

Is it possible to apply css or wrap tags around savedRange text selection. I'm using jquery.

this doesn't work:

$(savedRange).css(...);
$(savedRange).wrap(...);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

极致的悲 2024-10-22 11:10:24

如果“savedRange”的意思是这样的:

selection = window.getSelection()
savedRange = selection.getRangeAt(0)

那么您必须首先为该范围创建一个包装器,如下所示:

wrapper = document.createElement('span')
savedRange.surroundContents(wrapper)
selection.selectAllChildren(wrapper)

然后您可以应用样式:

$(wrapper).css(...)

If by "savedRange" you mean something like this:

selection = window.getSelection()
savedRange = selection.getRangeAt(0)

Then you will have to create a wrapper for the range first, like so:

wrapper = document.createElement('span')
savedRange.surroundContents(wrapper)
selection.selectAllChildren(wrapper)

You can then apply style:

$(wrapper).css(...)
汐鸠 2024-10-22 11:10:24

它不会围绕选定的文本工作,但这会在另一个 HTML 元素周围放置一个带有某种样式的 HTML 标签。

$(savedRange).wrap('<span style="color:red" />');

It won't work around selected text but this would put an HTML tag with some style in it around another HTML element.

$(savedRange).wrap('<span style="color:red" />');
后知后觉 2024-10-22 11:10:24

只需使用这个:

var sel = window.getSelection();
var range = sel.getRangeAt(0);
var tag = range.commonAncestorContainer.parentElement;

$(tag).css({'color':'red'});
// you can add css again using jquery

希望能有所帮助。

just use this:

var sel = window.getSelection();
var range = sel.getRangeAt(0);
var tag = range.commonAncestorContainer.parentElement;

$(tag).css({'color':'red'});
// you can add css again using jquery

hope can help .

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文