Hallo,
ich möchte gern auf das Ergebnis von gEBClassName ein onclick abfangen, und bekomme es nicht hin..
getElementsByClassName alle ansprechen
-
-
-
Lässt sich gut merken: getElementsByClassName
im Gegensatz zu zB getElementByIdbei "getElements" bekommst du also mehrere =)
-
Das ich mehrere bekomme weis ich und das auch klar
Wusste nur net ob ich mit onclick durch ne schleife kann
Danke
-
-
naja ob ich onkliicks durch ne for schleife jagen kann um eben i zu erhalten..
Jetzt hab ich aber ein interresantes Problem:
http://jsfiddle.net/wolfwortmann/rFuA8/
TypeError: article[i] is undefinedJavaScript
Alles anzeigenwindow.onload=function(){ var article = document.getElementsByClassName("art"); var butn = document.getElementsByClassName("ddbtn"); function toggleArt(i){ if (article[i].style.height != "auto") { article[i].style.height = "auto"; butn[i].style.transform = "rotate(-90deg)"; } else{ article[i].style.height = "52px"; butn[i].style.transform = "rotate(0deg)"; } }; for (var i = 0; i < butn.length; i++){ butn[i].onclick = function(){toggleArt(i);} }; };
-
ich bekomm nur: Uncaught TypeError: Cannot read property 'style' of undefined
prüf mal mit, ob style.height auch gesetzt ist
JavaScript
Alles anzeigenfor (var i = 0; i < butn.length; i++){ butn[i].onclick=function(){ if (article[i].style.height != "undefined" <<<<<<<<<<<<<< && article[i].style.height != "auto" ) { article[i].style.height = "auto"; } else{ article[i].style.height = "52px"; } }; };
EDIT:
achso: na Du hast 2 verschiedene codes hiereinen im jsfiddle, und einen anderen hier
Du hast vergessen article und butn mit in die function zu geben.
function toggleArt(i,article,butn)oder Du holst Dir die elemente erst IN der function, damit Du sie nicht mit rein geben musst- geht net.EDIT2:
JavaScript
Alles anzeigenwindow.onload=function(){ function toggleArt(article,butn){ if (article.style.height != "auto") { article.style.height = "auto"; butn.style.transform = "rotate(-90deg)"; } else{ article.style.height = "52px"; butn.style.transform = "rotate(0deg)"; } }; var article = document.getElementsByClassName("art"); var butn = document.getElementsByClassName("ddbtn"); for (var i = 0; i < butn.length; i++){ butn[i].onclick = function(){toggleArt(article[i],butn[i]);} }; };
-
Nein, die Elemente sind ja durch die vars butn und article erreichbar?!
Wieder der Fehler ...
TypeError: article is undefinedoh mahn :o
Wenn ich 0 statt i mitgebe funktioniert es zumindest halt bei dem ersten (0) Element.
-
Wenn du die CSS Werte nie definiert hast kannst du sie nicht abfragen, es geht hier nicht um die Elemente sondern lediglich um die CSS Werte.
-
Css ist definiert, zumindest im Orginal..!
Und soweit kommt es ja gernicht. -
hier die Lösung: i wurde nicht mitgegeben.. danke lauras
JavaScript
Alles anzeigenwindow.onload=function(){ function toggleArt(article,butn){ if (article.style.height != "auto") { article.style.height = "auto"; butn.style.transform = "rotate(90deg)"; } else{ article.style.height = "52px"; butn.style.transform = "rotate(0deg)"; } }; var article = document.getElementsByClassName("art"); var butn = document.getElementsByClassName("ddbtn"); for (var i = 0; i < butn.length; i++){ butn[i].setAttribute("data-i", i); butn[i].onclick = function(){toggleArt(article[this.getAttribute("data-i")],butn[this.getAttribute("data-i")]);} }; };
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!