A continuación, ¿cómo debo seleccionar los elementos que contienen la clase my_class
dentro del elemento con id = "my_id"
?
Tenga en cuenta que el elemento también puede tener otra clase, que no estoy seleccionando.
<div id = "my_id">
<span class = "my_class hidden">hi</span>
<span class = "my_class">hello</span>
</div>
estaba intentando
$("#my_id [class*=my_class ]")
$("#my_id .my_class:first")
Simplemente use el selector de clase simple.
No importa si el elemento también tiene otras clases. Tiene la clase .my_class , y está en algún lugar dentro de #my_id , por lo que coincidirá con ese selector.
Respecto al desempeño
De acuerdo con la documentación de rendimiento del selector de jQuery , es más rápido usar los dos selectores por separado, así:
Aquí está la parte relevante de la documentación:
Seleccionar por ID o solo por clase (entre otras cosas) invoca funciones proporcionadas por el navegador
document.getElementById()
que son bastante rápidas, mientras que usar un selector descendente invoca el motor Sizzle como se mencionó que, aunque rápido, es más lento que la alternativa sugerida.fuente
Siempre usa
en vez de
Eche un vistazo a las reglas de rendimiento de JQuery .
También en Jquery Doc
fuente
Creo que estás pidiendo seleccionar solo
<span class = "my_class">hello</span>
este elemento, tienes que hacer esto, si entiendo tu pregunta correctamente, esta es la respuesta,DEMO
fuente
$("#my_id .my_class")
es el equivalente más corto; en este caso, no gana nada usando el selector de atributos.También
$( "#container" ).find( "div.robotarm" );
es igual a:
$( "div.robotarm", "#container" )
fuente