2012-08-31 6 views
8

yo estaba tratando de código de ejemplo se encuentran aquí http://api.jquery.com/select/obtener texto resaltado usando jquery .select()?

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

Ahora mi pregunta es en lugar de imprimir "Algo fue seleccionado", ¿Puedo obtener un texto exacto seleccionado?

Quiero respuestas específicas de jquery .select(). Tengo otra solución de here

+0

¿Has resuelto tu problema? He publicado una respuesta que te ayudará. –

Respuesta

10

.select() no tiene nada que ver con la recuperación del texto seleccionado real. Select es igual que .click(): una forma fácil y abreviada de enlazar una función del manejador con el evento de selección.

Dice justo en the API docs:

El método para recuperar el texto seleccionado actual difiere de un navegador a otro. Varios plugins jQuery ofrecen soluciones multiplataforma.

Por lo que se unen con element.select(...) (o mejor aún, element.on("select", ...)), y luego se utiliza una de las muchas soluciones de plataforma cruzada para recuperar la selección. Esta es la idea básica: http://jsfiddle.net/NjW5a/3/

5

.Select() parece solo un evento que se activará en la selección de ese elemento específico. Sin embargo, para obtener el texto necesitará usar la función window.getSelection() de javascript.

Aquí se muestra un ejemplo: http://jsfiddle.net/BCv4Y/3/

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

}); 

Tal vez, será grande si la nueva versión de jQuery viene con algo así como $ (este) .selectedVal(). Espero que ayude

+1

Ithcy tiene razón. IE no es compatible con esa función window.getSelection(), por lo que tendremos que recurrir a una solución multiplataforma como la función * getSelected * que mencionó en jsfiddle http://jsfiddle.net/NjW5a/3/ (Fuente: 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 dijo: * "Quiero jquery .select() respuestas específicas." * Esto no parece usar '.select()' y, por lo tanto, no es realmente útil como respuesta en este específico pregunta. – Sumurai8

Cuestiones relacionadas