2011-01-31 12 views
15

¿Esto es posible? Para que pueda obtener el valor eq()? Por ejemplo, si hago clic en li:eq(2), var x se convertirá en 2. Aquí está el código.¿Cómo obtener el valor de eq()?

$('#numbers ul li').click(function(){ 
    x=$(this).eq().val(); 
    alert(x); 
}); 

Respuesta

25

El método .index()what is this? lo hará.

$('#numbers ul li').click(function() { 
    var self = $(this), 
     index = self.index(), 
     text = self.text(); 

    alert(text + ' ' + index); 
}); 

demostración: http://www.jsfiddle.net/Y2aDP/

+0

por lo que su índice(), gracias Jandy! – Ryan

+0

El índice no es equitativo cuando tiene más de 1 lista. – NycCompSci

+1

Estrictamente hablando, index() no es lo mismo que eq(). index() le devuelve el índice real del elemento, mientras usa el selector eq() manipula los índices para filtrar por el tipo de elemento que está buscando. Consulte este [Demo] (http://jsfiddle.net/vND37/) para ver un ejemplo. – Emerson

5

La respuesta anterior es erróneo. Index proporciona un valor relativo con respecto a sus hermanos. Por lo tanto, se espera que el valor cambie.

Debe ser algo así como

$('.someClass').click(function(){ 
    var that_ = this; 
    // your logic for this function 
    .... 
    .... 
    var currentIndex = $('.someClass').index(_that); 
}); 
0

Prueba este ..

$('#numbers ul li').click(function(){ 
    var x=$(this).index(); 
    alert(x); 
}); 
0

eq<> índice:

scount=$(selector).length; 
for(i=0; i<scount; i++){ 
    $("selector:eq("+i+")").attr("eq",i); 
} 
$("selector").click(function(){ 
    alert($(this).attr("eq")); 
}); 
+1

Por favor explique un poco más. Esto no es muy claro. –