获取文本节点外层样式
如何获取选中文本的样式是一个常见的难题。为了解决此问题,我们可以利用 JavaScript 的原生方法。
获取文本节点的父级元素
首先,我们通过 document.getSelection() 拿到选区,再通过 getRangeAt(0) 得到选区中的第一个范围。接着,我们可以利用 commonAncestorContainer 属性拿到该范围中的所有祖先元素的公共祖先容器。对于文本节点,其 commonAncestorContainer 正是其父级元素。
获取元素样式
立即学习“Java免费学习笔记(深入)”;
获取到父级元素后,我们可以通过 window.getComputedStyle(element).color 来得到该元素的颜色样式。
富文本节点样式
如果选取的部分包含富文本节点,我们需要进一步处理。我们可以遍历该父级元素的子节点,并依次获取其颜色样式。
代码示例
以下代码示例展示了如何实现此功能:
let range = document.getSelection().getRangeAt(0);let commonAncestorContainer = range.commonAncestorContainer;// 如果是文本节点,则获取它的父级元素if (commonAncestorContainer.nodeType === 3) { commonAncestorContainer = commonAncestorContainer.parentElement;}// 获取整体节点的样式console.log(window.getComputedStyle(commonAncestorContainer).color);// 获取富文本节点的样式commonAncestorContainer.children.forEach(child => { console.log(window.getComputedStyle(child).color);});
以上就是如何用JavaScript获取选中文本的父级元素样式?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1561147.html
微信扫一扫
支付宝扫一扫