【发布时间】:2017-10-09 17:09:01
【问题描述】:
我有一个奇怪的问题。我不太清楚如何处理它。我们有一个应用程序可以输出文本段落,每个单词都包含在一个带有 ID 的 span 中。我被要求制作一个 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?
【问题讨论】:
-
我不知道
setTranscriptPosition(-58)是什么。但我认为结合 jquerymouseup和您的 javascript 代码,您可以轻松地做到这一点。执行类似 On mouseup callgetSelected()之类的操作,如果只是单击它会返回 false,否则您可以获得跨度的 id。 -
我们在一个项目中正是这样做的。等一下,我正在为你过滤掉代码。
标签: javascript jquery