2010-04-22 3 views

Répondre

5
<ul> 
    <li>this</li> 
    <li>is</li> 
    <li>ul</li> 
</ul> 

<ul> 
    <li>this</li> 
    <li>is</li> 
    <li>another</li> 
    <li>ul</li> 
</ul> 

si vous avez quelque chose comme ci-dessus, vous pouvez faire jQuery:

$(function(){ 
    $('li').click(function(){ alert('the index is '+$(this).index()) }) 

}) 

ce alertera l'indice de l'élément li en fonction de sa mère ul

plus sur l'indice() here.

+0

Je ne connais pas cette méthode de jQuery, merci ~ – lovespring

1

Dans les navigateurs autres que IE, les espaces entre les éléments sont considérés comme des nœuds de texte (ce qui n'est pas le cas dans IE), ce qui affecte l'index des éléments suivants. Pour donner les mêmes résultats dans tous les navigateurs, la fonction ci-dessous filtre par défaut les nœuds d'espaces et possède un paramètre facultatif pour les inclure si c'est ce que vous voulez:

function indexOfNode(node, includeWhitespace) { 
    var index = 0, n = node; 
    while ((n = n.previousSibling)) { 
     if (includeWhitespace || n.nodeType != 3 || !/^\s*$/.test(n.data)) { 
      ++index; 
     } 
    } 
    return index; 
} 
Questions connexes