javascript - 当多个样式附加到html中的给定单词时,如何使用范围API单击一次单词
问题描述
例如,我有这样的 html:
<span>"This is s"<strong>xy</strong>"z"<strong>ample</strong>" text"</span>
当我在“This is s xy z ample text”句子中的“sxyzample”词之间单击时,我想使用范围 API 选择“sxyzample”词,以便使用以下值创建新范围。
range.startContainer.nodeType=3
range.startContainer.textContent= "This is sa"
range.endContainer.nodeType=3
range.endContainer.textContent="mple"
range.startOffset=8
range.endOffset=5
我正在使用 window.getSelection()、范围、节点。
代码片段如下。
<span class="clickable">"This is s"<strong>xy</strong>"z"<strong>ample</strong>" text"</span>
$(".clickable").click(function(e) {
s = window.getSelection();
var range = s.getRangeAt(0);
var node = s.anchorNode;
while (range.toString().indexOf(' ') != 0) {
range.setStart(node, (range.startOffset - 1));
}
range.setStart(node, range.startOffset + 1);
do {
range.setEnd(node, range.endOffset + 1);
} while (range.toString().indexOf(' ') == -1 && range.toString().trim() !=
'' && range.endOffset < node.length);
var str = range.toString().trim();
alert(str);
});
解决方案
推荐阅读
- php - 访问对象的方法
- flutter - Flutter isSBSettingEnabled
- reactjs - 当我尝试“npm install gh-pages --save-dev”时出现错误。这是用于在 GitHub 上托管网站
- xml - Starshipit / DHL DEC 不从产品中导入“commodity_code”
- iframe - 关闭 iframe 弹出窗口 - 跨域
- ios - 无需按下操作按钮即可自动滑动 UITableViewCell 并触发操作
- r - ggplot 访问数据标签而不是数据值
- r - 使用带有基于部分匹配的列名的正则表达式将字符串列拆分为字符串矩阵
- java - Spring Data JPA:连接列上的 FindBy
- excel - vba 歧视的问题