【问题标题】:Get offset of selection text [duplicate]获取选择文本的偏移量[重复]
【发布时间】:2013-12-21 01:55:12
【问题描述】:

我有像

这样的 html 代码
<div id="content">
   <span class="pivot">1</span>
   I know this is a really simple
   <span class="pivot">2</span>
   question
   <span class="pivot">3</span>
   to answer 
   <span class="pivot">4</span>
   please 
   <span class="pivot">5</span>
   help me to solve.
</div>

我选择了文本,我想在没有类pivot的整个文本中获取该文本的start_index(本例= 0)和last_index(本例= 39)

小提琴:http://jsfiddle.net/a7bxp/1/

【问题讨论】:

  • 选择后可以用一些按钮或其他东西触发解析吗?
    还是总是选择第一句话?
  • @AlanPiralla 我将通过单击按钮触发?有解决办法吗?
  • @gvee 我看过这个问题。我使用了这段代码。它返回开始和最后,但这不是我需要的。因为它在计算中包含 span 类中枢轴中的文本,而我不想计算它。

标签: jquery html


【解决方案1】:

这样的事情应该让你一试:

function getSelectionText() {
    var text = "";
    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }
    return text;
}



$('#your_button').click(function() {
   var whole_text = $('#content').text();
   var selected_text = getSelectionText();
   var index_of = whole_text.indexOf(selected_text);
   var end_of = index_of + selected_text.length;
});

我从这里获取函数:Get the Highlighted/Selected text

这是一个有效的 jFiddle: http://jsfiddle.net/a7bxp/

【讨论】:

  • 返回 0。 selected_text 为空。并且 index_of = 0。
  • 我的错误,已编辑,现在可以正常工作了。
  • opps,我不想在 selected_text 和整个 text 中包含 span.pivot 中的文本。跨度只是出于某种原因分隔字符串的枢轴。
  • 在这种情况下,如果您想保留原始 html 结构,则应该以某种方式对其进行调整。
猜你喜欢
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
  • 2021-04-03
相关资源
最近更新 更多