鉴于以下HTML内的任何地方...获得一个DOM范围通过点击元素
<p>Today is <span data-token="DateTime.DayOfWeek">$$DayOfWeek$$</span>,
</p>
<p>Tomorrow is the next day, etc, etc....</p>
点击$$ DAYOFWEEK $$返回一个DOM Range对象(通过组件,它是一个WYSIWIG editor bundled with KendoUI)。
那么我就可以访问整个元素,像这样......
var element = range.startContainer.parentElement;
console.log(element);
,输出...
<span data-token="DateTime.DayOfWeek">$$DayOfWeek$$</span>
什么,我试图找出是如何构造一个Range对象由整个元素组成,作为范围。
所需的“高级别”行为是单击一段文本,并让浏览器选择该元素内的所有文本,返回一个Range对象。
很高兴接受jQuery解决方案。
谢谢马特。确实很容易将你的小提琴调整到编辑器组件中,并简单地将它传递给创建的范围,以便选择整个元素。 – Baldy
在FireFox我在span.innerText上得到一个错误...所以我改变了jsFiddle了一下.. 'var TX = span.textContent || span.innerText; range.setEnd(span.childNodes [0],TX.length);' ..这种方式我认为它适用于所有浏览器。 –