【发布时间】:2017-06-06 17:01:50
【问题描述】:
我得到了以下 HTML:
<div id="editable_phrase">
My
<span style="background-color: #19FC49;"> first</span>
<span style="background-color: #09AC20;"> first</span> //note 2 firsts here
<span style="background-color: #D2C3EA;"> phrase</span>
</div>
原来的短语是-我的第一句话
我需要在我的原始短语中找到所选单词的第一个字母的位置。因此,如果我选择(用鼠标突出显示)phrase,我需要得到 10(或任何值)。我尝试使用 charAt() 或 window.getSelection 但仍然得到错误的结果。
此外,如果我选择相同的单词但在不同的位置(例如我上面的示例,其中有 2 个 first 单词),我会得到相同的结果,因为它找到了第一个单词的位置,而我需要第二个单词.
我可以使用 jQuery。任何想法都会受到欢迎。谢谢你。
【问题讨论】:
-
This sounds like an X Y problem,你想对那个职位做什么?
-
我需要将它存储在数据库中,然后将 标签应用于整个单词以突出显示
-
如果你在两个元素之间突出显示呢? (例如上例中的“st phra”)
-
我已经实现了一个将所选内容捕捉到单词的功能,但无论如何如果我能在没有它的情况下获得字母的位置,那就太好了
-
@Masha 我已经删除了我的答案。稍后当我有更多时间时,我将不得不对其进行更多研究。重要的部分是突出显示文本的代码。这是解决该问题的问题:stackoverflow.com/questions/3731328/…
标签: javascript jquery html