Foros del Web » Programando para Internet » Jquery »

seleccionar texto jquery

Estas en el tema de seleccionar texto jquery en el foro de Jquery en Foros del Web. hola bueno estoy haciendo un código en jquery que implica tener un texto seleccionado. ya obtuve el texto y lo muestro en un alert pero ...
  #1 (permalink)  
Antiguo 10/12/2013, 16:10
 
Fecha de Ingreso: enero-2013
Mensajes: 40
Antigüedad: 11 años, 11 meses
Puntos: 1
seleccionar texto jquery

hola bueno estoy haciendo un código en jquery que implica tener un texto seleccionado.
ya obtuve el texto y lo muestro en un alert pero si no selecciono nada igual muestra el alert vació, no se si me explico, bueno aquí el código que tengo.
Código Javascript:
Ver original
  1. <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
  2. <script>
  3. $(document).on('ready',function(){
  4.  
  5.   $('#botones a').click(function(){
  6.        alert(document.getSelection());
  7.   });
  8.  
  9. });
  10. </script>
  11.  
  12. <div id="botones"><a href="#">mostrar texto seleccionado</a></div>
  13.  
  14. <div id="contenido" contenteditable="true">
  15.     <p>contenido del div</p>
  16. </div>
bueno como ven, con la función document.getSelection() me muestra lo que selecciono con el mouse del div contenido, al hacer click en el link.
pero si no he seleccionado nada, igual me lo muestra.

quiero hacer algo asi:
Código Javascript:
Ver original
  1. <script>
  2. $(document).on('ready',function(){
  3.  
  4.   $('#botones a').click(function(){
  5.      
  6.       if(ha seleccionado algo?){
  7.            alert(document.getSelection());
  8.        }else{
  9.            no mostrar nada
  10.        }
  11.   });
  12.  
  13. });
  14. </script>
he probado poniendo if(document.getSelection()=="") y no funciona, tal vez usando el typeof pero tampoco.

agradecería mucho alguna ayuda, o alguna pag o libro que me recomienden donde salga todo sobre jquery

gracias
  #2 (permalink)  
Antiguo 10/12/2013, 17:31
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: seleccionar texto jquery

Primero, necesitas convertir la selección a cadena y luego, ya podrá averiguar la cantidad de caracteres que contiene.

Código Javascript:
Ver original
  1. $('#botones a').click(function(){
  2.   var seleccion = document.getSelection();
  3.   if(seleccion.toString().length)
  4.     alert(seleccion);
  5. });

Tomo la selección que se haya realizado en el documento, la convierto a cadena con el método toString, con el método length, obtengo la longitud de la selección y luego, si dicha extensión existe, es decir, si es mayor a cero, se muestra el mensaje de alerta con la selección realizada.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 10/12/2013, 20:07
 
Fecha de Ingreso: enero-2013
Mensajes: 40
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: seleccionar texto jquery

gracias ya me funciono bien,
ahora otra pregunta solo si tienes alguna idea siguiendo con el mismo tema. tengo un texto dentro de un div y lo selecciono, luego obtengo la posición del texto seleccionado. con el codigo siguiente.
Código Javascript:
Ver original
  1. <script>
  2. var start_select=document.getSelection().getRangeAt(0).startOffset;
  3. </script>
  4.  
  5. <div id="contenido">
  6.    <p>contenido del div</p>
  7. </div>
ahora por ejemplo selecciono "del", este código me devolverá 9 ya que empieza a contar desde el inicio del texto (contenido) y yo quiero que igual me incluya el <p>, osea que no solo me de la posiciones contando desde el texto, sino también contando las etiquetas html que estan dentro de este div.
  #4 (permalink)  
Antiguo 10/12/2013, 20:10
 
Fecha de Ingreso: enero-2013
Mensajes: 40
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: seleccionar texto jquery

Cita:
Iniciado por Alexis88 Ver Mensaje
Primero, necesitas convertir la selección a cadena y luego, ya podrá averiguar la cantidad de caracteres que contiene.

Código Javascript:
Ver original
  1. $('#botones a').click(function(){
  2.   var seleccion = document.getSelection();
  3.   if(seleccion.toString().length)
  4.     alert(seleccion);
  5. });

Tomo la selección que se haya realizado en el documento, la convierto a cadena con el método [URL="https://developer.mozilla.org/es/docs/Referencia_de_JavaScript_1.5/Objetos_globales/Object/toString"][COLOR="Blue"][B]toString[/B][/COLOR][/URL], con el método [URL="https://developer.mozilla.org/es/docs/Referencia_de_JavaScript_1.5/Objetos_globales/String/length"][COLOR="blue"][B]length[/B][/COLOR][/URL], obtengo la longitud de la selección y luego, si dicha extensión existe, es decir, si es mayor a cero, se muestra el mensaje de alerta con la selección realizada.

Saludos
gracias ya me funciono bien,
ahora otra pregunta solo si tienes alguna idea siguiendo con el mismo tema. tengo un texto dentro de un div y lo selecciono, luego obtengo la posición del texto seleccionado. con el codigo siguiente.
Código Javascript:
Ver original
  1. <script>
  2. var start_select=document.getSelection().getRangeAt(0).startOffset;
  3. </script>
  4.  
  5. <div id="contenido">
  6.    <p>contenido del div</p>
  7. </div>
ahora por ejemplo selecciono "del", este código me devolverá 9 ya que empieza a contar desde el inicio del texto (contenido) y yo quiero que igual me incluya el <p>, osea que no solo me de la posiciones contando desde el texto, sino también contando las etiquetas html que estan dentro de este div.

Etiquetas: javascript, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:02.