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:
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:
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.
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.