Foros del Web » Programando para Internet » Jquery »

Funciones y selectores de JQuery

Estas en el tema de Funciones y selectores de JQuery en el foro de Jquery en Foros del Web. Hola. Me decidí a aprender Javascript y JQuery. Estoy haciendo un mini curso y me dan un ejercicio de selectores y funciones, es muy básico ...
  #1 (permalink)  
Antiguo 08/12/2014, 14:45
 
Fecha de Ingreso: mayo-2010
Mensajes: 53
Antigüedad: 14 años, 5 meses
Puntos: 0
Funciones y selectores de JQuery

Hola. Me decidí a aprender Javascript y JQuery. Estoy haciendo un mini curso y me dan un ejercicio de selectores y funciones, es muy básico pero ya no sé qué estoy haciendo mal.

Me piden:

Cita:
Creá una variable llamada $objetivo en script.js y usá el signo = para asignarla al selector de jQuery que representa el n.º 4 en la lista ordenada. ¡Cuando ejecutes tu código, debería desaparecer!
Mi HTML:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <head>
  3.         <title>Simplificar, simplificar</title>
  4.         <script type='text/javascript' src='script.js'></script>
  5.     </head>
  6.     <body>
  7.         <div> ¡Acordate!
  8.             <ul class="lista">
  9.                 <li>
  10.                     <ol>
  11.                         <li>Comenzá con la palabra clave 'function'</li>
  12.                         <li>Los argumentos van entre ()</li>
  13.                         <li>Las acciones van entre {}</li>
  14.                         <li>¡jQuery es para tontos!</li>
  15.                     </ol>
  16.                 </li>
  17.                 <li>Los argumentos van separados por comas.</li>
  18.                 <li>¡Los argumentos pueden incluir otras funciones!</li>
  19.             </ul>
  20.         </div>  
  21.     </body>
  22. </html>

Código Javascript:
Ver original
  1. // ¡Escribe tu código de jQuery en la línea 3!
  2.  
  3. var $objetivo = $('');
  4.  
  5. $(document).ready(function() {    
  6.     $objetivo.fadeOut('fast');
  7. });

Probé con varias cosas en var $objetivo = $('');, desde class, id, todo y no me sale :@... alguno sabe que pasa?
  #2 (permalink)  
Antiguo 08/12/2014, 16:36
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Funciones y selectores de JQuery

No sucede lo que esperas porque ni siquiera estás realizando una selección. Esta lectura puede serte de ayuda.

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 09/12/2014, 09:43
Avatar de elporfirio  
Fecha de Ingreso: octubre-2013
Mensajes: 37
Antigüedad: 11 años
Puntos: 4
Respuesta: Funciones y selectores de JQuery

mmm el código JS debe quedar algo así:

Código:
var $objetivo = $('.lista').find('ol').children().last();
 
$(document).ready(function() {    
    $objetivo.fadeOut('fast');
});
Es la forma correcta si alguien te dice utilizar:

Código:
var $objetivo = $('.lista ol li').last();
Esta mal hecho pues lo estas haciendo con selectores CSS ¿entonces para que necesitas jQuery?
__________________
visita http://elporfirio.com o habrá tabla ¬¬

Última edición por tunait; 09/12/2014 a las 10:05
  #4 (permalink)  
Antiguo 09/12/2014, 16:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Funciones y selectores de JQuery

Técnicamente, no estaría mal el uso de selectores CSS al momento de seleccionar un elemento del DOM con jQuery, de hecho, esa es una de las particularidades de la librería, sin embargo, los métodos de selección que ofrece, pueden llegar a ser ―en algunos casos― más rápidos, solo que para esto tendrá que aprender cuáles son y cómo debe de usarlos.

Solo para que quede de referencia: http://api.jquery.com/category/traversing/

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
  #5 (permalink)  
Antiguo 09/12/2014, 18:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 53
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Funciones y selectores de JQuery

Muchísimas gracias por la ayuda y por los links, voy a ojearlos de seguro.

EDIT: Traté de hacer como lo puso @elporfirio pero me sigue tirando "¡Uy! Probá otra vez. ¿Estás modificando al 4to 'li' hijo de la lista ordenada? "

Está mal hacerlo de esta manera? (me tira error igualmente):

Código Javascript:
Ver original
  1. var $objetivo = $('.ordenada');
  2.  
  3. $(document).ready(function() {    
  4.     $objetivo.fadeOut('fast');
  5. });

Código HTML:
Ver original
  1. !DOCTYPE html>
  2.     <head>
  3.         <title>Simplificar, simplificar</title>
  4.         <script type='text/javascript' src='script.js'></script>
  5.     </head>
  6.     <body>
  7.         <div> ¡Acordate!
  8.             <ul>
  9.                 <li>
  10.                     <ol>
  11.                         <li>Comenzá con la palabra clave 'function'</li>
  12.                         <li>Los argumentos van entre ()</li>
  13.                         <li>Las acciones van entre {}</li>
  14.                         <li class="ordenada">¡jQuery es para tontos!</li>
  15.                     </ol>
  16.                 </li>
  17.                 <li>Los argumentos van separados por comas.</li>
  18.                 <li>¡Los argumentos pueden incluir otras funciones!</li>
  19.             </ul>
  20.         </div>  
  21.     </body>
  22. </html>

También probé esto y me sigue tirando error, qué estoy haciendo mal?

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <head>
  3.         <title>Simplificar, simplificar</title>
  4.         <script type='text/javascript' src='script.js'></script>
  5.     </head>
  6.     <body>
  7.         <div> ¡Acordate!
  8.             <ul>
  9.                 <li class="item1">
  10.                     <ol>
  11.                         <li>Comenzá con la palabra clave 'function'</li>
  12.                         <li>Los argumentos van entre ()</li>
  13.                         <li>Las acciones van entre {}</li>
  14.                         <li>¡jQuery es para tontos!</li>
  15.                     </ol>
  16.                 </li>
  17.                 <li>Los argumentos van separados por comas.</li>
  18.                 <li>¡Los argumentos pueden incluir otras funciones!</li>
  19.             </ul>
  20.         </div>  
  21.     </body>
  22. </html>

Código Javascript:
Ver original
  1. // ¡Escribe tu código de jQuery en la línea 3!
  2.  
  3. var $objetivo = $('li.item1').find('ol').last();
  4.  
  5. $(document).ready(function() {    
  6.     $objetivo.fadeOut('fast');
  7. });

Última edición por kenyis01; 09/12/2014 a las 19:20
  #6 (permalink)  
Antiguo 09/12/2014, 20:12
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Funciones y selectores de JQuery

Te faltó colocar dentro del ready a la línea en la que declaras la variable y tomas al elemento, pero ojo, de esa forma, estás tomando a toda la lista ordenada, no al último ítem de la misma.

Solo cambia esto:

Código Javascript:
Ver original
  1. var $objetivo = $('li.item1').find('ol').last();

Por esto:

Código Javascript:
Ver original
  1. var $objetivo = $('li.item1').find('li').last();

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
  #7 (permalink)  
Antiguo 09/12/2014, 20:49
 
Fecha de Ingreso: mayo-2010
Mensajes: 53
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Funciones y selectores de JQuery

Traté de hacer de esa forma y tampoco funciona... no sé si es un error del curso o si hay que hacerlo de una manera específica.

Por las dudas paso el link a ver si alguno lo puede hacer y decirme.

Codeacademy Jquery
  #8 (permalink)  
Antiguo 09/12/2014, 23:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Funciones y selectores de JQuery

¿Y en qué parte incluyes a la librería jQuery? Además, en ese enlace, no veo que hayas reacomodado la línea que te indiqué.

Déjalo así:

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $('ol').find('li').last().fadeOut('fast');
  3. });

DEMO

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

Última edición por Alexis88; 09/12/2014 a las 23:25 Razón: Solución
  #9 (permalink)  
Antiguo 10/12/2014, 07:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 53
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Funciones y selectores de JQuery

Tu manera funciona, pero el curso necesita de hacerse en una manera específica y con variables.

Por eso no entiendo por qué no funciona cuando declaro la variable y después la uso, no es lo mismo que estas haciendo vos?

Código Javascript:
Ver original
  1. var $objetivo = $('ol').find('li').last();
  2.  
  3. $(document).ready(function() {    
  4.     $objetivo.fadeOut('fast');
  5. });

No es lo mismo hacer eso, que esto?

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $('ol').find('li').last().fadeOut('fast');
  3. });
  #10 (permalink)  
Antiguo 10/12/2014, 10: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: Funciones y selectores de JQuery

No, porque tu script se encuentre en la cabecera del documento, por lo tanto, carga antes de la carga de los elementos del documento, es decir, cuando carga tu script, no existen la listas que has creado, por lo tanto, la variable $objetivo, no obtiene al elemento en cuestión. Tienes que declararla dentro del método ready para que funcione correctamente ya que dicho método ejecuta su función luego de la carga de los elementos del documento.

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
  #11 (permalink)  
Antiguo 11/12/2014, 12:48
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Funciones y selectores de JQuery

No hace falta ejecutar tres métodos (selector, find, last) para encontrar un elemento, pudiéndolo recuperar sólo con un selector.

Lo que tienes que hacer es comprender cómo funcionan los selectores en jQuery (la mayoría son los mismos que usa CSS) y utilizar el mejor para lo que buscas.

Para eso sirve la documentación.
http://api.jquery.com/category/selectors/
  #12 (permalink)  
Antiguo 11/12/2014, 13:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Funciones y selectores de JQuery

Cita:
Iniciado por marlanga Ver Mensaje
No hace falta ejecutar tres métodos (selector, find, last) para encontrar un elemento, pudiéndolo recuperar sólo con un selector.
Eso fue lo que inicialmente le sugerí, pero nuestro compañero elporfirio no está de acuerdo.
__________________
«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
  #13 (permalink)  
Antiguo 08/01/2015, 12:35
 
Fecha de Ingreso: enero-2015
Mensajes: 1
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Funciones y selectores de JQuery

La línea que debe de llevar es la siguiente:
var $objetivo=$('li:last-child');
o si no:
var $objetivo = $('li:nth-child(4)');

Etiquetas: funciones, selectores
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 06:07.