javascript - type - queryselector varios elementos
jQuery equivalente de querySelector (3)
¿Cuál es el equivalente jQuery de querySelector? La única forma que he encontrado hasta ahora es seleccionar todo y luego elegir la primera selección:
$(selectorString)[0]
Con la expresión anterior, ¿es jQuery lo suficientemente inteligente como para detenerse después de encontrar el primer partido?
Actualización: @Mutnowski sugirió usar eq () y primero, pero después de leer la documentación de jQuery, esos dos métodos parecen tener el mismo inconveniente: jQuery primero obtendrá todas las coincidencias, y luego solo filtrará el primer elemento.
puedes escribir un plugin simple ( notas de compatibilidad )
$.fn.firstMatch = function(sel) {
var len = this.length;
if (!len) return this;
for(var i = 0; i < len; i++){
var match = this[i].querySelector(sel);
if (match) return $(match);
}
return $();
}
Desea que .eq (índice) obtenga un índice
$("td").eq(2)
$("td:eq(2)")
Si solo quieres el primer uso .first ()
$("tr").first()
$("tr:first")
Entonces parece que no hay un equivalente de querySelector en jQuery, o en otras bibliotecas que he visto.
La solución consiste en seleccionar todos los elementos coincidentes (equivalentes a querySelectorAll) y luego filtrar el primero. Esto se puede hacer usando [0] (devuelve un nodo html) o como lo sugiere @Mutnowski con eq (0) o primero (devolviendo un objeto jQuery).