2010-08-30 13 views
6

İçinde çok sayıda li var. Tüm li bir "# kategori" id ama farklı sınıflar (".tools", ".milk", ".apple" gibi) var.jQuery, li sınıf adı bulun (iç ortamdaki)

jQuery'yi kullanma. Yapmam:

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

şimdi ben bir li sınıf "adı" koymak zorunda -) some_other_thing (iç işlevini (aslında bir dize) yerine .... o

yapılabilir nasıl?

cevap

3

id'un benzersiz olması gerektiğini unutmayın! Her bir li öğesinin aynı id olduğunu öneriyorsunuz.

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

bunu doğru anladıysam, sorun aynı kimliğe sahip birden li en olamaz şudur: Sen Sonra .: Bir class ile

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

örn değiştirin ile seçmek isteyebilirsiniz. Her sayfada yalnızca bir tane benzersiz kimlik olabilir. Muhtemelen istediğin, kimliğini sınıfa değiştirmektir. Yani bu çizgiler boyunca bir şeyiniz olur.
<ul>
<li class="category milK">Chocolate</li>
<li class="category tool">Big Hammer</li>
</ul>

Sonra bunu "category" geçersiz kimlikli birden <li> elemanlara sahip, bir belgede benzersiz olmak zorunda $("li.category").click(function() {....});

4

kimlik kartlarıyla arama yapabilirsiniz. Bunu bir sınıfa veya veri niteliğine veya başka bir şeye değiştirin. Ya da sadece <ul> ebeveyne bir sınıf atayın, böylece tüm li'sin içine kolayca erişebilirsiniz.

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

Tüm li'ini alın ve tıklama işleyicisini atayın.

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

Öğe öğelerinizin benzersiz kimliklere sahip olması gerekir.

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

VEYA

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

VEYA

$("ul.classname > li").click(...); 
: onlar yaptığınızda, ">" operatörü ile ul tüm li çocuklar seçebilirsiniz