js实现对选中文本添加颜色

参考 https://developer.mozilla.org/zh-CN/docs/Web/API/Range/surroundContents

window.getSelection() 等价于 document.getSelection

返回一个 Selection 对象,表示用户选择的文本范围或光标的当前位置。
const selection = window.getSelection();
selection.toString(); //用于获取当前选中文本的文字

Range对象

Range接口表示一个包含节点与文本节点的一部分的文档片段。
const range = window.getSelection().getRangeAt(0);
const docObj = range.extractContents(); //移动了Range 中的内容从文档树到DocumentFragment(文档片段对象)。
let dom = document.createElement(‘span’);
dom.style.color = ‘red’;
dom.appendChild(docObj);
range.insertNode(dom);

以上实现了对选中文本添加红色样式

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的 JavaScript 示例程序,演示如何使用事件监听器实现更换文本颜色添加、删除列表的内容。 ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>My Page</title> <style> #my-text { color: black; } </style> </head> <body> <h1>My Page</h1> <p id="my-text">Hello, world!</p> <button id="color-button">Change Color</button> <ul id="my-list"> <li>Item 1</li> <li>Item 2</li> </ul> <button id="add-button">Add Item</button> <button id="remove-button">Remove Item</button> <script> // 获取元素 var textElement = document.getElementById("my-text"); var colorButton = document.getElementById("color-button"); var listElement = document.getElementById("my-list"); var addButton = document.getElementById("add-button"); var removeButton = document.getElementById("remove-button"); // 更换文本颜色 colorButton.addEventListener("click", function() { var color = prompt("Enter a color:"); if (color != null) { textElement.style.color = color; } }); // 添加列表项 addButton.addEventListener("click", function() { var item = prompt("Enter an item:"); if (item != null) { var li = document.createElement("li"); li.textContent = item; listElement.appendChild(li); } }); // 删除列表项 removeButton.addEventListener("click", function() { var selectedItems = listElement.querySelectorAll("li.selected"); for (var i = 0; i < selectedItems.length; i++) { listElement.removeChild(selectedItems[i]); } }); // 选中列表项 listElement.addEventListener("click", function(event) { if (event.target.tagName === "LI") { event.target.classList.toggle("selected"); } }); </script> </body> </html> ``` 在这个示例程序中,我们创建了一个简单的网页,其中包含一个文本元素、一个更换颜色的按钮、一个列表和两个按钮(添加和删除列表项)。 为了实现更换文本颜色的功能,我们使用了 prompt 对话框来获取用户输入的颜色,并将其应用于文本元素。 为了实现添加和删除列表项的功能,我们使用了 createElement 和 appendChild 方法来创建和添加新的列表项,使用 removeChild 方法来删除选中的列表项。 为了实现选中列表项的功能,我们使用了 classList 和 toggle 方法来切换列表项的选中状态。 请注意,这只是一个简单的示例程序,您可能需要根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值