1Danke
ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
364
364
EMPFEHLEN
-
Hallo Forum
ich stehe hier for einem Rätsel. Ich habe mir eine Funktion geschrieben um HTML Objekte mit bestimmtem Klassennamen zu finden:
Code javascript:1 2 3 4 5 6 7 8 9 10
function getElementsByClassName(class){ elements = document.getElementsByTagName("*"); returnArray = new Array(); for (i = 0; i < elements.length; i++) { if( elements[i].className == class){ returnArray.push(elements[i]); } } return returnArray; }
Das Problem dabei ist, dass ich nur einen div mit entsprechender Klasse habe, dieser aber zweimal gefunden wird. Wie kann ich den Fehler beheben?Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
"Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
RegEx Tutorial
PHP Funktionsreferenz
-
Moin,
das kann ich nicht nachvollziehen, bei mir liefert dies 1 Element, wenn nur eins da ist.
Das einzig fehlerhafte am Skript ist die Nutzung des Variablennamens "class"...dies ist ein geschützer Name in JS, mein IE6 honoriert dies sogar damit, dass er das Skript nicht ausführt.
Gut wäre auch noch, wenn du die Variablen per var deklarierst, damit sie nicht global sichtbar sind....dies könnte zu Wechselwirkungen führen.
-
Hmm
ich habe es jetzt auch noch einmal getestet und die Funktion funktioniert einwandfrei. Der Fehler muss also wohl woander liegen, danke
Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
"Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
RegEx Tutorial
PHP Funktionsreferenz
-
Hallo,
einige Browser unterstützen diese Funktion auch schon von Haus aus. Eine robuste Implementierung, die das berücksichtigt und als Fallback eine einfache Schleife verwendet (wie bei deinem Code), findet man z.B. unter http://code.google.com/p/getelementsbyclassname/
Grüße,
Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
Hallo,
bei mir hat bisher folgendes prima funktioniert, da auch multiple Klassen berücksichtigt werden:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
function getElementsByClassName(class_name){ var returnArray = new Array(), i, j=0, testStr; var allElements = document.getElementsByTagName("*"); for (i = 0; i < allElements.length; i++) { if(allElements[i].className.indexOf(class_name) > -1){ testStr = ","+allElements[i].className.split(" ").join(",")+","; if(testStr.indexOf(","+class_name+",") > -1) { returnArray[j] = allElements[i]; j++; } } } return returnArray; }Geändert von hela (18.07.10 um 00:02 Uhr)
Ähnliche Themen
-
getElementsByClassName und IE
Von SCIPIO-AEMILIANUS im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 16.02.09, 19:23 -
beliebig viele Array elemente miteinander mulitplizieren
Von javaxy im Forum JavaAntworten: 2Letzter Beitrag: 25.04.07, 08:13 -
Herausfinden wie viele Elemente ein Array hat
Von FBIagent im Forum PHPAntworten: 2Letzter Beitrag: 27.11.05, 20:01 -
Eigene Elemente erstellen - Falsche Darstellung in IE
Von leopedia im Forum CSSAntworten: 4Letzter Beitrag: 23.04.05, 15:31 -
Ping findet eigene Karte nicht, aber alle anderen!
Von Der O im Forum NetzwerkeAntworten: 5Letzter Beitrag: 09.12.03, 15:22





Zitieren

Login





