Foros del Web » Programando para Internet » Jquery »

¿Es Class o Id el objeto selecionado?

Estas en el tema de ¿Es Class o Id el objeto selecionado? en el foro de Jquery en Foros del Web. Bueno esto es algo, que considero que debe ser básico, pero no consigo dar con la tecla, ni encontrar en la documentación si hablan de ...
  #1 (permalink)  
Antiguo 28/11/2012, 10:13
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 15 años, 6 meses
Puntos: 17
Pregunta ¿Es Class o Id el objeto selecionado?

Bueno esto es algo, que considero que debe ser básico, pero no consigo dar con la tecla, ni encontrar en la documentación si hablan de esto (no soy muy bueno escribiendo en ingles, y quizas no formulo la busqueda adecuada).

Veamos, el tema es simple. En Jquery podemos selecionar por clase $('.clase') o por id $('#identificador'). Lo que necesito saber, es que se esta llamando exactamente cuando se hace si es una Clase o si es un Id, para una vez dentro de la función itinerar o no el objeto.

He probado con el metodo .isArray(), pero la respuesta que me devuelve es un objeto y no un array, por lo que siempre obtengo false con esta función.

¿Alguna idea de como diferenciar esto?

Gracias y un saludo.
  #2 (permalink)  
Antiguo 29/11/2012, 02:19
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 14 años, 2 meses
Puntos: 48
Respuesta: ¿Es Class o Id el objeto selecionado?

Quizá te sirva ".attr()".
Un ejemplo sería un ejemplo (añadiendo un evento "click", aunque podría ser cualquier otra cosa) así:
Código Javascript:
Ver original
  1. $('#mi-id, .mi-clase').bind('click', function(){
  2.     if ( $(this).attr('id') == 'mi-id' ){
  3.         /* Es el id */
  4.     } else{
  5.         /* Es la clase */
  6.     }
  7. })
__________________
eZ Publish Developer Basic Legacy
eZ Publish Developer Basics (4.4)
Alojamientos rurales en España
  #3 (permalink)  
Antiguo 29/11/2012, 03:09
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 15 años, 6 meses
Puntos: 17
Respuesta: ¿Es Class o Id el objeto selecionado?

Gracias por la respuesta Trublux. Pero no me sirve por una sencilla cuestión y es que en tu ejemplo comparas el id del objeto con una cadena con el nombre del di/clase. Mi problema es que no se cual es este id o clase (ya que podría ser cualquiera)

Pongo directamente lo que estoy haciendo y asi, si lo dejamos listo quizas a alguien mas le sirva.

Código:
jQuery.fn.reset = function () { 
    //this[0].reset();
    $(this[0]).each (function() { this.reset(); }); 
}
Lo que hago es una extensión de la biblioteca jquery, para poder usar $('#form').reset() y limpiar los campos de los formularios. Lo que no me gustaria es realizar este each, cuando realmente no es necesario (cuando tenemos un unico elemento) siendo mas rapido y optimo usar la primera opción (entre comentarios).

Es una función simple la que estoy haciendo, pero me quede trabado ahí de mala forma. El siguiente paso, (este si más sencillo) sera comprobar si el tipo de elemento es un formulario o elemento de este (ya que usar reset sobre otro tipo de objeto da problemas).
  #4 (permalink)  
Antiguo 29/11/2012, 09:50
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 14 años, 2 meses
Puntos: 48
Respuesta: ¿Es Class o Id el objeto selecionado?

Ok, entonces tu problema no es saber si un elemento está siendo usado por su clase o id, lo que quieres es saber si has recogido un elemento o varios.
Para ello puedes usar la "length":
Código Javascript:
Ver original
  1. jQuery.fn.reset = function () {
  2.     if ( this.length == 1 ){
  3.         this.reset();
  4.     } else if( this.length > 1 ){
  5.         this.each( function() {
  6.             this.reset();
  7.         });
  8.     } else{
  9.         //console.log( 'Ningún elemento encontrado' );
  10.     }
  11. }

De todas formas no creo que sea una gran carga el hacer un each cuando sólo tienes un elemento ya que lo que puedas "ahorrar" lo gastarás en decidir si haces el each o no.

También podrías usar un "do while" (pero seguirias teniendo que comprobar que te han llegado elementos).
__________________
eZ Publish Developer Basic Legacy
eZ Publish Developer Basics (4.4)
Alojamientos rurales en España

Última edición por Trublux; 29/11/2012 a las 10:04 Razón: Corregir un error en el código

Etiquetas: clase, identificador
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 12:53.