2011-01-04 15 views
8

Dizin değeriyle çok kolay çalışabilir miyim? Doğal indeks değerlerini kullanmanın sınıfları kullanarak daha iyi olduğunu düşünüyorum. .index'i bu şekilde kullanmak istiyorum.

Html

<div id="test"> 
<ul> 
<li>Im index 0</li> 
<li>Im index 1</li> 
<li>Im index 2</li> 
<li>Im index 3</li> 
</ul> 
</div> 

Sözde (jQuery) JavaScript

$('#test ul > li').index(2).hide(); 

$('#test ul > li').index(1).click(function() { 
alert('lulz you clicked the li with the index value of 1 bro'); 
}); 

nasıl .. bu mümkün .Index değeri ile bu şekilde çalışması için bu ile kolayca çalışmak için bir ipucu bulmak doesnt yöntem??

cevap

12

Sen eq kullanabilirsiniz:

:

$('#test ul > li').eq(2).hide(); 

Aynı zamanda seçicinin bir parçası olabilir

$('#test ul > li:eq(2)').hide(); 

Üçüncü 0 istiyorsaniz#test tüm ul s, sen nth-child (o 1 tabanlı unutmayınız) kullanabilirsiniz:

$('#test ul > li:nth-child(3)').hide(); 
1

Bir tamsayı (sayı) ile kullanıyorsunuz, ancak bunu yalnızca bir seçici veya öğe ile kullanabilirsiniz. here

Düzenleme:
Böyle kendi fonksiyon yazabiliriz:

function indexValue(index) 
{ 
    $(element).each(function(key, val) { 
     if(key+1 == index) // + 1 because you started from 0 
     { 
      return val; 
     } 
    }); 
} 
5

Evet yapabilirsiniz. Bunun yerine .index() ait Ancak .eq() istiyorum:

$('#test ul > li').eq(2).hide(); 

Veya seçicinin parçası olarak:

$('#test ul > li:eq(2)').hide(); 
0
$(document).ready(function(){ 
    $("button#1").click(function(){ 
    $("p").hide(); 
    }); 
}); 
$(document).ready(function(){ 
    $("button#2").click(function(){ 
    $("p").show(); 
    }); 
}); 
<button id="1">Clica-me</button> 
<button id="2">Volta-me</button>