Obtenir la liste des index de l'élément dans le HTML ul liste à l'aide de Javascript
J'ai la page HTML suivante:
<html>
<head>
<script type="text/javascript" src="JavaScript/Menu.js"></script>
</head>
<body>
<ul>
<li><a onclick="GetIndex(this)">One</a></li>
<li><a onclick="GetIndex(this)">Two</a></li>
<li><a onclick="GetIndex(this)">Three</a></li>
<li><a onclick="GetIndex(this)">Four</a></li>
</ul>
</body>
</html>
Et la Menu.js javascript:
function GetIndex(sender)
{
var aElements = sender.parentNode.parentNode.getElementsByTagName("a");
var aElementsLength = aElements.length;
var index;
for (var i = 0; i < aElementsLength; i++)
{
if (aElements[i] == sender) //this condition is never true
{
index = i;
return index;
}
}
}
Pourquoi le commentaire condition jamais rencontré? Comment puis-je comparer si les deux éléments HTML sont égaux en Javascript? Merci pour toute l'aide.
Ne pas se tromper, l'objectif principal ici est d'obtenir que sanglante de l'index. Cependant, apprendre à faire de la contestation de la condition renvoie true permettra de résoudre ce et de nombreux autres problèmes.
Votre code fonctionne très bien pour moi dans IE et Chrome, en supposant que vous le modifier légèrement pour faire quelque chose avec
E: j'ai supprimé le
wow, il fonctionne maintenant! ce que l'enfer... se pourrait-il que ma page ou le javascript a été mis en cache?
celui qui veut écrire "Votre code est correct" dans la réponse obtenez des points pour fournir la bonne réponse 🙂
Votre code fonctionne très bien pour moi dans IE et Chrome, en supposant que vous le modifier légèrement pour faire quelque chose avec
index
à l'intérieur de l'état, au lieu de simplement en le retournant. jsfiddle.net/AndyE/BcSL7E: j'ai supprimé le
return index;
ligne et a ajouté alert('Index: ' + index);
à la fin de la fonction et de résultats dans un message "Index: non identifié". 🙁wow, il fonctionne maintenant! ce que l'enfer... se pourrait-il que ma page ou le javascript a été mis en cache?
celui qui veut écrire "Votre code est correct" dans la réponse obtenez des points pour fournir la bonne réponse 🙂
OriginalL'auteur Boris | 2010-10-27
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur xj9
Vieux Post, mais voici une petite fonction pour ce faire:
Cela devrait fonctionner avec un élément de référence en tant que paramètre. Essentiellement, il retourne le nombre de frères et sœurs.
OriginalL'auteur dareapersven
essayez d'utiliser:
si (aéléments[i] === expéditeur)
au lieu de
OriginalL'auteur Vin.X
Êtes-vous sûr GetIndex fonction est exécutée sur l'événement de clic sur la balise d'ancrage?
Essayer en donnant href attribut de balise d'ancrage. Vous pouvez écrire soit
ou
ici est l'exemple http://jsfiddle.net/QfRSb/
<a>
éléments sont en train de changer dans la boucle. Qui prouve que la fonction n'est exécutée. (TAF, je suis en utilisant google Chrome. Je ne sais pas si ça compte...)tu veux dire onclick="GetIndex(this); return false" !!!
non, je voulais dire
if (aElements[i] == sender)
renvoie la valeur false.jsfiddle.net/QfRSb
OriginalL'auteur Chinmayee G
Jquery peut aider à l'aide de
prevAll()
OriginalL'auteur Matthew Semik