Javascript 获取html中所选内容的位置

Javascript 获取html中所选内容的位置,javascript,jquery,Javascript,Jquery,我需要一个html容器(也包含html)中所选文本的位置或开始和结束偏移。 例如: <span id="text-for-selection"> <h1>Heading</h1> <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.</p> <p>Aenean massa.<

我需要一个html容器(也包含html)中所选文本的位置或开始和结束偏移。 例如:

<span id="text-for-selection">
  <h1>Heading</h1>
  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.</p>
  <p>Aenean massa.</p>
  <p>Aenean massa.</p>
  <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </p>
</span>

标题
Lorem ipsum dolor sit amet,是一位杰出的领导者。埃尼安·康莫多·利古拉·埃吉特·多洛

埃尼安·马萨

埃尼安·马萨

在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯

如果我选择第一个“Aenean massa”。现在,我需要知道第一个选定字母在文本选择容器(包括html标记!!)中的位置,而不仅仅是在
标记中。 我试图搜索它,但如果我选择第二个,该选择哪一个呢?
我知道如何获取所选文本,或者如何向所选内容添加html,或者如何替换所选文本。 但我不知道如何在span容器中获取范围/偏移量


有什么想法吗

这是你一直在寻找的东西吗?
您是否尝试了javascript中的indexOf?这是一个例子

<html id="html">
<body>

<span id="text-for-selection">
  <h1>Heading</h1>
  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.</p>
  <p>Aenean massa.</p>
  <p>Aenean massa.</p>
  <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </p>
</span>


<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
var str=document.getElementById('html').innerHTML;

var n=str.indexOf("Aenean massa.");
alert(n);
}
</script>

</body>
</html>

标题
Lorem ipsum dolor sit amet,是一位杰出的领导者。埃尼安·康莫多·利古拉·埃吉特·多洛

埃尼安·马萨

埃尼安·马萨

在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯

试试看 函数myFunction() { var str=document.getElementById('html').innerHTML; var n=str.indexOf(“Aenean massa”); 警报(n); }

这是纯Javascript。您也可以使用Jquery

我不知道有什么方法可以做到这一点,因为JavaScript只处理HTML的DOM抽象。你想解决什么问题?你能给我们看一下你可能尝试过的代码吗?你为什么用
包装
?为什么不
?@TrungDQ对我来说,它是否是一个span-order div并不重要。这只是为了让周围有一个id。为什么你会从你的数据库中得到“Lorem ipsum”^^rangy也一样-它只返回元素中所选文本的位置。这是迄今为止最好的答案。但是仍然存在问题,如果我选择第二个“Aenean massa”,indexOf函数将返回第一个元素的索引。