如附圖所示,我的目標(biāo)是選擇一個文本,例如“Among the Helvetii”,并找到 nMarker 類中的哪個元素在選擇之前。換句話說,我想選擇“Among the Helvetii”并以某種方式找到 nMarker 類的元素,該元素的數(shù)據(jù)標(biāo)記等于 1。不幸的是,我沒有一次機(jī)會使用 jQuery prevAll、prev、closest 等,因?yàn)?DOM 是未知的,所以我無法計算父母、祖先等,因?yàn)闃?biāo)記放置在許多單詞之后,緊隨算法(這是我無法更改的要求)。到目前為止,我所取得的成就是實(shí)現(xiàn)了這個方案,如果選擇與標(biāo)記所在的元素位于同一元素中,則該方案有效。但正如我所說,我想要一個在不了解 DOM 結(jié)構(gòu)的情況下工作的解決方案。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")}
無論 DOM 結(jié)構(gòu)如何,在給定文本選擇的情況下查找特定類的前一個元素
函數(shù)式編程
2023-06-29 15:39:27