我可以查詢(在jQuery意義上)DOM元素 - 而不是只是文本節點 - 完全由鼠標選擇?構建:選擇選擇器
構建:選擇選擇器
回答
這將讓你的所有,是完全選擇的要素:
var currentSelection = window.getSelection();
var firstRangeInSelection = currentSelection.getRangeAt(0);
var commonAncestor = firstRangeInSelection.commonAncestorContainer;
var nodesInSelection = $(commonAncestor).find("*").filter(function() {
return currentSelection.containsNode(this, false);
});
有關DOM選項的詳細信息,請this page。
+1,雖然它可以通過幾次檢查得到改進:首先,IE <9不支持'window.getSelection()',所以你應該檢查它的存在;第二,如果沒有選擇任何東西,'getRangeAt(0)'將會拋出一個錯誤,所以你應該檢查'currentSelection.rangeCount'是否大於零。 –
實際上,如果選擇完全包含在單個文本節點中會發生什麼?我認爲你會得到一個空的jQuery對象。 –
你可以我的答案適應以下問題回到你一個jQuery對象,而不是一個數組,這應該是簡單的:
JS: Get array of all selected nodes in contentEditable div
然而,這不會在IE < 9工作,它不支持與其他瀏覽器相同的Selection
對象。爲此,你需要另一種方法。有我自己的Rangy圖書館,如答案中提到的,但如果你需要支持沒有圖書館,那麼我可以把東西敲在一起。
你是什麼意思而不是「數組」?我的解決方案也返回一個jQuery對象。對不起,如果你不是在說我:) –
@Chris:我不是指你的答案。我曾經假設OP會想要一個jQuery集合,而不是一個數組,這就是我的鏈接所產生的答案。 –
- 1. 構建選擇器
- 2. 重新選擇選擇器結構
- 3. 如何查詢構建器選擇內部選擇laravel
- 4. ZF2註釋構建器 - 選擇
- 5. 界面構建器:鎖定選擇
- 6. Laravel查詢構建器 - > = ALL(選擇...)
- 7. ITunesConnect - 無法選擇構建
- 8. 構建選擇列表
- 9. 選擇器>選擇器和選擇器選擇器有什麼區別?
- 10. 在構建庫之前選擇選項
- 11. '&'選擇器選擇什麼?
- 12. ListFragment選擇器選擇
- 13. 選擇CSS選擇器
- 14. CSS3選擇器選擇父
- 15. CSS選擇器選擇
- 16. 引導選擇選擇器多選
- 17. JQuery類選擇器vs id選擇器
- 18. angular.element選擇器vs jquery選擇器
- 19. css選擇器或xpath選擇器
- 20. CSS選擇器後代選擇器
- 21. CSS HTML選擇器與類選擇器
- 22. jQuery空選擇器(空選擇器)
- 23. jQuery ::選擇器vs類選擇器
- 24. 選擇選擇
- 25. 編程創建表單 - 選擇選擇
- 26. 創建選擇
- 27. 通過Xajax創建選擇框後選擇火焰選擇框
- 28. 的選擇/選項jQuery選擇:選擇
- 29. XML架構選擇
- 30. 更新選擇器選擇與另一個選擇器的選定值
「高亮」意思是什麼?而且,更甚者,「部分突出」是什麼意思? – Jon
看看這個:http://stackoverflow.com/questions/7803016/how-to-wrap-html-tag-for-jquery-mouseup-selection-wrods/7803559#7803559 –
@Randomblue「selected」是更熟悉的術語... –