getElementById funktioniert nicht auf einem Knoten
In diesem einfachen Skript bekomme ich die Fehlermeldung "obj.parentNode.getElementById ist keine Funktion", und ich habe keine Ahnung, was falsch ist.
<script type="text/javascript">
function dosomething (obj) {
sibling=obj.parentNode.getElementById("2");
alert(sibling.getAttribute("attr"));
}
</script>
<body>
<div>
<a id="1" onclick="dosomething(this)">1</a>
<a id="2" attr="some attribute">2</a>
</div>
</body>
InformationsquelleAutor Ursus Russus | 2010-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
.getElementById()
ist aufdocument
wie diese:Da IDs sind soll einzigartig sein, es gibt keine Notwendigkeit für eine Methode, die feststellt, ein element durch ID relativ zu jedem anderen element (in diesem Fall innen, Eltern). Auch, Sie sollten nicht mit einer Zahl beginnen, wenn mit HTML4, ein numberic ID ist gültig in HTML5.
InformationsquelleAutor Nick Craver
ersetzen .getElementById(id) mit .querySelector('#'+id);
InformationsquelleAutor kernowcode
document.getElementById()
wird nicht funktionieren, wenn der Knoten war, die dynamisch erstellt wird und noch nicht an der Haupt-Dokument-dom.Beispielsweise mit Ajax, nicht alle Knoten befestigt sind, an jedem gegebenen Punkt. In diesem Fall würden Sie müssen entweder explizit track ein handle zu jedem Knoten (in der Regel am besten für die Leistung), oder so etwas wie das Aussehen der Objekte sichern:
InformationsquelleAutor Kevin Seifert