如附图所示,我的目标是选择一个文本,例如“Among the Helvetii”,并找到 nMarker 类中的哪个元素在选择之前。
换句话说,我想选择“Among the Helvetii”并以某种方式找到 nMarker 类的元素,该元素的数据标记等于 1。
不幸的是,我没有一次机会使用 jQuery prevAll、prev、closest 等,因为 DOM 是未知的,所以我无法计算父母、祖先等,因为标记放置在许多单词之后,紧随算法(这是我无法更改的要求)。
到目前为止,我所取得的成就是实现了这个方案,如果选择与标记所在的元素位于同一元素中,则该方案有效。但正如我所说,我想要一个在不了解 DOM 结构的情况下工作的解决方案。
var sel = window.getSelection ? window.getSelection() : document.selection.createRange();
if(sel.getRangeAt){ // That’s for Firefox
var range = sel.getRangeAt(0);
var newNode = document.createElement("span");
newNode.setAttribute('class', 'justSelected');
range.surroundContents(newNode);
$(".justSelected").prevAll(".nMarker").data( "marker")
}
米脂
相关分类