Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Usar before() de JQuery

Estas en el tema de Usar before() de JQuery en el foro de Jquery en Foros del Web. Hola, tengo una duda sobre cómo usar la función before() de jquery. Mi código es éste: Código: <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"> </script> <script> ...
  #1 (permalink)  
Antiguo 04/05/2014, 12:46
Avatar de Biiiiilm  
Fecha de Ingreso: septiembre-2012
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 1
Usar before() de JQuery

Hola, tengo una duda sobre cómo usar la función before() de jquery.

Mi código es éste:

Código:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $(¿¿¿???).before("Texto anterior a botón ->");
  });
});
</script>
</head>
<body>

<button>Cliquéame</button>
<br /><input name="primero" type="radio" value="1" />1. Primero
<br /><input name="segundo" type="radio" value="2" />2. Segundo

</body>
</html>
Quiero que el texto "Texto anterior a botón ->" aparezca delante de uno de los inputs, pero NO de ambos.
Es decir, no sé qué atributo tengo que poner donde he puesto los interrogantes ¿¿¿???

Si pongo 'input[type="radio"]' el texto aparece, pero delante de los dos, y yo solo quiero que aparezca delante del primero.

¿Alguna idea?
  #2 (permalink)  
Antiguo 04/05/2014, 13:21
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 2 meses
Puntos: 578
Respuesta: Usar before() de JQuery

Con el selector o método first.
  #3 (permalink)  
Antiguo 04/05/2014, 13:21
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Usar before() de JQuery

Debes de especificar el elemento al que quieres anteponer el texto para que no se incluya en ambos. Puedes hacerlo tanto con el método before como con insertBefore.

Código Javascript:
Ver original
  1. //Con .before()
  2. $(":radio:first-child").before("<label>Texto anterior a botón -></label>");
  3.  
  4. //Con .insertBefore()
  5. $("<label>Texto anterior a botón -></label>").insertBefore(":radio:first-child");

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
  #4 (permalink)  
Antiguo 04/05/2014, 13:38
Avatar de Biiiiilm  
Fecha de Ingreso: septiembre-2012
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Usar before() de JQuery

Pongo lo que me dices y no funciona...
Código:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $(":radio:first-child").before("Texto anterior a botón ->");
  });
});
</script>
</head>
<body>

<button>Cliquéame</button>
<br /><input name="primero" type="radio" value="1" />1. Primero
<br /><input name="segundo" type="radio" value="2" />2. Segundo

</body>
</html>
Lo correcto es $('input[type="radio"]:first').before("Texto anterior a botón ->");

Por cierto, ¿cómo haríais para que fuese delante del segundo? En lugar del primero. Entiendo que podría usarse "last", pero... ¿Hay alguna manera de usar "second"? xD O similar...

Me vuelvo a contestar. Se usa :eq(0) ó :eq(1) para seleccionar el primero o el segundo, respectivamente ;)

Muchísimas gracias, Alexis88

Última edición por Biiiiilm; 04/05/2014 a las 13:49
  #5 (permalink)  
Antiguo 04/05/2014, 14:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Usar before() de JQuery

Es extraño que no te funcione correctamente:



El selector :radio, es equivalente a input[type="radio"]: https://api.jquery.com/radio-selector/
__________________
«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

Etiquetas: html, input, javascript, js, usar
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 14:24.