Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

197
Vistas
Comportamiento extraño con: seleccionar en .find()

Estoy en proceso de actualizar un sitio que actualmente usa jQuery 1.3.2 a al menos 1.10.2. Cuando lo hago, el sitio se ahoga con comandos como este:

 this.form.find(':select[name="fieldtype"]');

Esto no debería funcionar, debería ser: this.form.find('select[name="fieldtype"]'); - sin los dos puntos - pero de hecho funciona.

No he encontrado nada que sugiera que ':select...' es válido. ¿Es posible que los dos puntos simplemente se ignoraran en jQ 1.3.2?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

EDITAR :

Me olvidé por completo de los pseudoselectores personalizados. Si, para fines heredados, necesita una versión más nueva de jQuery para tratar :select como select , puede hacer esto:

 jQuery.extend(jQuery.expr[':'], { select: function (el) { return jQuery(el).is('select'); } });

Y ahora jQuery(':select') y jQuery('select') son expresiones equivalentes.

Explicación

Parece ser un error con el motor de selección sizzle css utilizado por jquery, por lo que jquery podría seleccionar elementos dom antes de document.querySelectorAll fuera una cosa (o una cosa ampliamente disponible). jQuery 1.3.2 usa sizzle 0.9.3 (¡anterior a la versión 1!), la próxima versión de jQuery, 1.4.0, usa sizzle 1.0.0, donde el error no está presente.

El error parece ser específicamente que las etiquetas adecuadas con el prefijo ":" se interpretarán como una etiqueta en lugar de un pseudo no válido.

Puedes verificar que sizzle es el culpable:

  • Descargar jquery 1.3.2 y jquery 1.4
  • Copie el bloque sizzle 1.0.0 de 1.4 y reemplace el bloque sizzle 0.9.3 en 1.3.2

Su versión "híbrida 1.3.2" ahora también rechazará el selector.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda