Anzahl von DIV's mit bestimmten Namen ausgeben

ZodiacXP

Erfahrenes Mitglied
Hallo.

Vorab schon mal an alle: "Ich weis. Der Tag DIV hat das Attribut 'name' nicht".
Daher kommt bestimmt auch mein Fehler im Internet Explorer.

Das Script sieht so aus:
Code:
function countElem(p1, p2) {
	var Elem;
	if(DOM) {
		if(p1.toLowerCase()=="name") {
			alert(document.getElementsByName("ress_eisen").length);
			if (typeof document.getElementsByName(p2) == "object") return document.getElementsByName(p2).length;
			return void(0);

			// Hier wird nur Müll im IE ausgegeben

		} else if(p1.toLowerCase()=="tag") {
			if (typeof document.getElementsByTagName(p2) == "object" ||
				(OP && typeof document.getElementsByTagName(p2) == "function"))
					Elem = document.getElementsByTagName(p2).length;
			else Elem = void(0);
			return(Elem);
		} else return void(0);
	} else if(MS) {
		if(p1.toLowerCase()=="id") {
			if (typeof document.all[p2] == "object")
			Elem = document.all[p2].length;
			else Elem = void(0);
			return(Elem);
		} else if(p1.toLowerCase()=="tag") {
			if (typeof document.all.tags(p2) == "object")
			Elem = document.all.tags(p2).length;
			else Elem = void(0);
			return(Elem);
		} else if(p1.toLowerCase()=="name") {

			// hier fehlt mir die passende Variante

		} else return void(0);
	} else if(NS) {
		if(p1.toLowerCase()=="id" || p1.toLowerCase()=="name") {
		if (typeof document[p2] == "object")
			Elem = document[p2].length;
			else Elem = void(0);
			return(Elem);
		} else if(p1.toLowerCase()=="index") {
		 if (typeof document.layers[p2] == "object")
			Elem = document.layers[p2].length;
		 else Elem = void(0);
			return(Elem);
		} else return void(0);
	}
}

Die Funktion soll Elemente zählen. Folgende Variablen sind vorhanden beim IE:
DOM = 1;
MS = 1;
NS = 0;

Für p1 gebe ich an "name" und für p2 gebe ich den namen "test" an der sich auf folgenden HTML bezieht:

HTML:
<div name="test"></div>
<div name="test2"></div>
<div name="test"></div>
<div name="test3"></div>

Eigentlich müsste mit dem Aurfuf "countElem('name', 'test');" die zahl 2 zurückgegeben werden. Aber die Menge bleibt leer im IE. Zum einen kann es dadran liegen das
- im HTML: DIV kein "name" unterstützt, oder
- im JavaScript: Die Methode .length nocht für document.getElementsByName()
gedacht ist.

Wer kann mir weiterhelfen, eventuell mit einer anderen Idee?

Vielen Dank!
ZodiacXP

EDIT: Selbst bei dem HTML-Tag <textarea> welches das 'name'-Element unterstützt geht es nicht.
 
ok. perverse sache. sorry! sobald man auch eine ID angibt die gleich dem Name is funktionierts. IE is schon was feines.
 

Neue Beiträge

Zurück