Posso interrogare (in un senso jQuery) gli elementi DOM - non solo nodi di testo - completamente selezionati dal mouse?Edificio a: selettore di selezione
risposta
Questo ti porterà tutti gli elementi che sono completamente selezionati:
var currentSelection = window.getSelection();
var firstRangeInSelection = currentSelection.getRangeAt(0);
var commonAncestor = firstRangeInSelection.commonAncestorContainer;
var nodesInSelection = $(commonAncestor).find("*").filter(function() {
return currentSelection.containsNode(this, false);
});
Per ulteriori informazioni su Dom Selezioni, controlla this page.
+1, anche se sarebbe migliorato con alcuni controlli: primo, IE <9 non supporta 'window.getSelection()' quindi dovresti controllare l'esistenza di quello; secondo, 'getRangeAt (0)' genererà un errore se non è selezionato nulla, quindi dovresti controllare che 'currentSelection.rangeCount' sia maggiore di zero. –
In realtà, cosa succede se la selezione è completamente contenuta all'interno di un singolo nodo di testo? Presumo che otterrai un oggetto jQuery vuoto. –
Si potrebbe adattare la mia risposta alla seguente domanda per restituire un oggetto jQuery, piuttosto che una matrice, che dovrebbe essere semplice:
JS: Get array of all selected nodes in contentEditable div
Tuttavia, questo non funzionerà in IE < 9, che non supporta lo stesso oggetto Selection
come altri browser. Per questo, avrai bisogno di un altro approccio. C'è la mia libreria Rangy, come menzionato in quella risposta, ma se hai bisogno di supporto IE < 9 senza una libreria, allora posso battere qualcosa insieme.
Cosa intendi con "piuttosto che con un array"? La mia soluzione restituisce anche un oggetto jQuery. Scusa se non stavi parlando di me :) –
@Chris: non mi riferivo alla tua risposta. Avevo pensato che l'OP avrebbe voluto una collezione jQuery piuttosto che una matrice, che è ciò a cui produce la risposta che ho collegato. –
- 1. jQuery Selettore vuoto (selezione nulla)
- 2. Edificio Boost.Python
- 3. Come posso ottenere il selettore di selezione rapida Android fab?
- 4. selettore CSS3 :: selezione non funziona correttamente sul tag di ancoraggio
- 5. selettore jquery come selettore a due elementi
- 6. Edificio LLVM esempio
- 7. Edificio LibVLC per x86
- 8. edificio Android NDK-?
- 9. jQuery Ottieni elementi casuali da una selezione Restituito da $ (selettore)
- 10. Pulsante di selezione sfondo
- 11. Edificio v8 senza JIT
- 12. Icona edificio errore Cordova
- 13. Unity3D costruire errore edificio
- 14. Edificio OpenSSL su Android NDK
- 15. Heroku - Git push senza edificio
- 16. Edificio NumPy 1.7.1 su Ubuntu
- 17. Edificio/incluso Boost.Python in VS2013
- 18. Calcolo della distanza all'interno di un edificio
- 19. Selettore Swift - selettore non riconosciuto inviato a un'istanza
- 20. Edificio Qt5 Git/Perl - percorso
- 21. jQuery selettore di riferimento a sé
- 22. Problemi edificio OpenSSL per android
- 23. edificio oozie: Host sconosciuto repository.codehaus.org
- 24. Selettore del tempo di rotazione
- 25. Selezione di un server di build
- 26. selettore jQuery: selezione di una determinata combinazione di classi quando esistono più
- 27. Visualizzazione selettore pavimento in google maps api per javascript
- 28. Come selezionare il primo antenato che corrisponde a un selettore?
- 29. Cancella selezione SingleChoiceVisualizzazione selezione
- 30. Visualizzazione selettore foto personalizzata
Cosa significa "evidenziare" esattamente? E, ancora di più, cosa significa "evidenziare parzialmente"? – Jon
Dai un'occhiata a questo: http://stackoverflow.com/questions/7803016/how-to-wrap-html-tag-for-jquery-mouseup-selection-wrods/7803559#7803559 –
@Randomblue "selected" è il termine più familiare per quello ... –