javascript - 使用 getSelected() 获取所选文本的范围 ID

标签 javascript jquery

我有一个奇怪的问题。我不太知道如何处理它。我们有一个应用程序,可以吐出文本段落,每个单词都包含在带有 ID 的范围内。我被要求编写一个 JavaScript 来捕获用户突出显示的所有单词的 ID。

下面是一个简单的段落示例。

<span id="p-58" class="softWord" onClick="setTranscriptPosition(-58);return false"> that </span>
<span id="p177" class="softWord" onClick="setTranscriptPosition(177);return false"> quake </span>
<span id="p857" class="softWord" onClick="setTranscriptPosition(857);return false"> briefly </span>
<span id="p1697" class="softWord" onClick="setTranscriptPosition(1697);return false"> triggering </span>
<span id="p2267" class="softWord" onClick="setTranscriptPosition(2267);return false"> another </span>
<span id="p2697" class="softWord" onClick="setTranscriptPosition(2697);return false"> tsunami </span>

我知道有一种方法可以使用类似这样的方法来捕获所选文本:(在网站 http://motyar.blogspot.com/2010/02/get-user-selected-text-with-jquery-and.html 找到此内容)

function getSelected() {
    if(window.getSelection) { return window.getSelection(); }
        else if(document.getSelection) { return document.getSelection(); }
                    else {
                            var selection = document.selection && document.selection.createRange();
                            if(selection.text) { return selection.text; }
                return false;
            }
            return false;
        }

我如何获得这些跨度的 id?

最佳答案

好的,这将完全满足您的需要。这要感谢我的 friend 在我们一起做的一个项目上所做的工作,所以功劳属于他:

http://jsfiddle.net/KC48j/11/

只需选择一些文本并点击按钮即可。 编辑:更新为也可以与 IE 一起使用。您可以自己修改逻辑(它如何处理单词之间的空格取决于您)。

关于javascript - 使用 getSelected() 获取所选文本的范围 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5637430/

相关文章:

javascript - 无法在 IE8 或 IE9 中加载 jQuery

javascript - 如何从 Meteor 的列表集合中删除项目?

javascript - 文件不被缓存

jquery - 隐藏的 div 在页面加载时出现几分之一秒

javascript - 使用基本身份验证时出现错误 404

jquery - 两个具有两种不同文本大小的 jquery UI 框

jquery - 在 jquery 中使用 attr() 相对于 addClass 的优点

javascript - Ember 教程 - 向 router.js 添加新路由

javascript - 实时 : Websockets vs Comet

javascript - 将 React 中的 Monaco Editor 设置为只读