2012-08-31 13 views
8

Cercavo esempio di codice trovato qui http://api.jquery.com/select/ottiene il testo evidenziato usando jquery .select()?

$(":input").select(function() { 
     $("div").text("Something was selected").show().fadeOut(1000); 
    }); 

Ora la mia domanda è invece di stampare "Qualcosa è stato selezionato", posso ottenere esattamente il testo selezionato?

Desidero risposte specifiche jquery .select(). Ho ricevuto un'altra soluzione da here

+0

hai risolto il problema? Ho inviato una risposta che ti aiuterà. –

risposta

10

.select() non ha nulla a che fare con il recupero del testo selezionato. Select è uguale a .click(): un modo semplice e veloce per associare una funzione di gestore all'evento selezionato.

Dice proprio nel the API docs:

Il metodo per recuperare il testo attuale selezionato differisce da un browser all'altro. Un numero di plug-in jQuery offre soluzioni multipiattaforma.

Così si legano con element.select(...) (o meglio ancora, element.on("select", ...)), e quindi si utilizza una delle tante soluzioni cross-platform per recuperare la selezione. Questa è l'idea di base: http://jsfiddle.net/NjW5a/3/

5

.Select() sembra solo un evento che verrà attivato alla selezione di quell'elemento specifico. Tuttavia, per ottenere il testo sarà necessario utilizzare la funzione di javascript window.getSelection().

Ecco un esempio: http://jsfiddle.net/BCv4Y/3/

$(":input").select(function() { // on selection, show what's selected 
     $("div").text(window.getSelection()).show().fadeOut(1000); 
    } 

}); 

Forse, Sarà bello se la nuova versione di jQuery è dotato di qualcosa come $ (this) .selectedVal(). Spero che questo aiuti

+1

Ithcy ha ragione. IE non supporta quella funzione window.getSelection(), quindi avremo una soluzione multipiattaforma come la funzione * getSelected * menzionata nel jsfiddle http://jsfiddle.net/NjW5a/3/ (Fonte: Ithcy ^^) – Ellipsis

0
<script> 
window.onmouseup = mouseup; 
function mouseup() { 
getSelText(); 
} 
</script> 
    <script type="text/javascript"> 
function getSelText() { 
var txt = ''; 
if (window.getSelection) { 
    alert (window.getSelection()); 
} else if (document.getSelection) { 
    alert (document.getSelection()); 
    } else if (document.selection) { 
    alert(document.selection.createRange().text); 

} else return; 

} 
</script> 
+0

OP ha detto: * "Voglio jquery .select() risposte specifiche." * Questo non sembra usare '.select()' e quindi non è molto utile come risposta su questo specifico domanda. – Sumurai8

Problemi correlati