Get list item index in HTML ul Liste mit Javascript
Habe ich die folgende HTML-Seite:
<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>
Und die 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;
}
}
}
Warum ist die kommentierte Bedingung nie erfüllt? Wie kann ich vergleichen, ob die beiden HTML-Elemente, die gleich sind in Javascript? Vielen Dank für all die Hilfe.
Nicht zu verwechseln, das Ziel hier ist es zu bekommen, dass die blutigen index. Jedoch lernen, wie man die umstrittene Bedingung true zurück, lösen diese und viele andere Dilemmata.
Dein code funktioniert einwandfrei bei mir im IE und im Chrome, vorausgesetzt, Sie ändern es etwas zu tun, etwas mit
E: ich löschte die
wow, es funktioniert jetzt! was zur Hölle... könnte es sein, dass meine Seite oder javascript zwischengespeichert wurde?
wer schreiben will "Ihr code korrekt ist" in der Antwort werden die Punkte für die richtigen Antworten 🙂
Dein code funktioniert einwandfrei bei mir im IE und im Chrome, vorausgesetzt, Sie ändern es etwas zu tun, etwas mit
index
in der Bedingung, anstatt einfach wieder. jsfiddle.net/AndyE/BcSL7E: ich löschte die
return index;
Linie und Hinzugefügt alert('Index: ' + index);
an das Ende der Funktion, und es resultiert in einer Fehlermeldung "Index: "unbekannte". 🙁wow, es funktioniert jetzt! was zur Hölle... könnte es sein, dass meine Seite oder javascript zwischengespeichert wurde?
wer schreiben will "Ihr code korrekt ist" in der Antwort werden die Punkte für die richtigen Antworten 🙂
InformationsquelleAutor Boris | 2010-10-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor xj9
Alte Post, aber hier ist eine kurze Funktion, um dies zu tun:
Sollte diese Arbeit mit einem element-Referenz als parameter. Es gibt im Grunde nur die Anzahl der vorherigen Geschwister.
InformationsquelleAutor dareapersven
versuchen, Sie zu nutzen:
wenn (aelemente[i] === Absender)
statt
InformationsquelleAutor Vin.X
Sind Sie sicher, dass GetIndex Funktion wird ausgeführt beim klicken " - Ereignis auf Anker-tag?
Versuchen, indem href-Attribut anchor-tag. Sie können entweder schreiben
oder
hier ist das Beispiel http://jsfiddle.net/QfRSb/
<a>
Elemente ändern sich in der Schleife. Das zeigt, dass die Funktion nicht ausgeführt. (BWT, ich bin mit Chrome. Ich weiß nicht, ob es wichtig ist...)du meinst onclick="GetIndex (); return false" !!!
Nein, ich meinte
if (aElements[i] == sender)
gibt false zurück.jsfiddle.net/QfRSb
InformationsquelleAutor Chinmayee G
Jquery kann helfen, mit
prevAll()
InformationsquelleAutor Matthew Semik