no puedo hablar con el aspecto de elegancia, pero el aspecto de rendimiento aquí realmente puede hacer una gran diferencia.
Parece que, from a set of JavaScript testing, que su método original es en realidad el más uno eficiente, y contrariamente a la hipótesis de que la respuesta aceptada vinculada a, los selectores no CSS del chisporroteo tienden a ser mucho menos eficiente que el método selectores Hay una razón para eso. El $('.answer')
puede usar el navegador nativo getElementsByClass()
sin tener que recorrer manualmente los resultados. El selector :first
lo complica. En este caso, usar los selectores de sizzle parece ralentizar la selección por un factor de entre 4-5.
Argumentaría que, con jQuery, el rendimiento debe superar la elegancia, y todas las pruebas (¡cada navegador que he probado hasta ahora!) Parece indicar que la solución poco elegante de OP es la más rápida en una cantidad justa.
Éstos son los resultados de los navegadores con el mayor número de ejecuciones de prueba:

(Los números son 'operaciones por segundo', números de modo más altas son más rápidos, los números más bajos son más lentos.)
Según mi propia experiencia, he encontrado que '.first' puede ser realmente ineficiente en IE y que' $ ($ (foo) [0]) 'fue significativamente más rápido. Esto solo importa en el código crítico (piense '.each' en juegos grandes) – Raynos
Su versión, aunque poco elegante, parece ser de lejos la más eficiente. – Yahel
Es curioso cómo una pregunta sobre la elegancia se convirtió en una evaluación comparativa del rendimiento. –