2010-08-30 34 views
6

Tengo ul con un número de li dentro. Todos tienen un id "#category" pero diferentes clases (como ".tools", ".milk", ".apple").jQuery, encontrar el nombre de clase li (dentro de ul)

Uso de jQuery. Hago:

$("li#category").click(function(){ some_other_thing (....)}); 

ahora tengo que poner la clase "nombre" de una li - (una cadena de hecho) en el interior del some_other_thing() función en lugar de ....

¿Cómo se puede hacer?

Respuesta

3

¡Tenga en cuenta que id debe ser único! Estás sugiriendo que cada elemento li tenga el mismo id. Es posible que desee sustituirlo por un class, por ejemplo .:

<ul> 
    <li class="category tools" /> 
    <li class="category milk" /> 
</ul> 

A continuación, seleccione con:

$('li.category').click(function(){}); 
0

Si entiendo esto correctamente, el problema es que no se puede tener múltiples li con el mismo ID. Solo puede tener una ID única por página. Lo que probablemente quiera es cambiar el ID a la clase. Entonces tendrías algo en esta línea.
<ul>
<li class="category milK">Chocolate</li>
<li class="category tool">Big Hammer</li>
</ul>

A continuación, puede buscar con $("li.category").click(function() {....});

4

de identificación tienen que ser único en un documento, por lo que tener múltiples elementos <li> con el id "category" es válido. Cambie eso a una clase o un atributo de datos u otra cosa. O simplemente asigne una clase al padre <ul> para que pueda recuperar fácilmente todas las li dentro de él.

<ul id="categories"> 
    <li class="tools"> 
    <li class="milk"> 
</ul> 

Obtenga todos los li's y asigne el manejador de clics.

$('#categories li').click(function() { 
    var className = $(this).attr('class'); 
    some_other_thing(className); 
}); 
1

Sus elementos li deben tener identificadores únicos. Una vez que lo hacen, puede seleccionar todos los niños del li ul con el ">" operador:

var ul_elem = $("#id_of_ul"); 
$("> li", ul_elem).click(...); 

O

$("#id_of_ul > li").click(...); 

O

$("ul.classname > li").click(...); 
Cuestiones relacionadas