Heim > Web-Frontend > js-Tutorial > Hauptteil

Der Unterschied zwischen document.forms[0] und getElementByName in den JavaScript_Javascript-Kenntnissen

WBOY
Freigeben: 2016-05-16 16:18:35
Original
1370 Leute haben es durchsucht

Schauen wir uns zunächst ein Beispiel an:

Code kopieren Der Code lautet wie folgt:


testtest

testtest

testtest


document.forms[0] Wenn die HTML-Seite ein oder mehrere Formularformulare enthält, wird ein Formulararray vom Typ NodeList zurückgegeben
document.forms[0].usernames, wobei Benutzernamen der Wert von id oder der Wert von name sein können, diese beiden Attribute sind hier äquivalent. Darüber hinaus wird nicht unterschieden, ob es sich bei der Komponente um ein Textfeld, ein Optionsfeld oder ein Kontrollkästchen handelt.

Zu diesem Zeitpunkt müssen zwei Situationen unterschieden werden ,

Wenn es eine Eingabe gibt, deren ID oder Name „Benutzernamen“ ist, gibt document.forms[0].usernames die spezifische Eingabekomponente zurück. Wenn Sie sie zu diesem Zeitpunkt bedienen, müssen Sie sie gemäß der spezifischen Komponentenoperationsmethode verwenden .

Zu diesem Zeitpunkt gibt Alert(document.forms[0].usernames.length) undefiniert zurück, da die Eingabekomponente nicht über das Längenattribut verfügt.
Wenn es zwei oder mehr Eingaben gibt, deren IDs oder Namen „Benutzernamen“ sind, gibt document.forms[0].usernames zu diesem Zeitpunkt ein NodeList-Array zurück Alert(document.forms[0].usernames.length) gibt die Länge des Arrays zurück. Im obigen Beispiel ist der Rückgabewert 3
Daher müssen Sie bei der Verwendung von js zur Auswahl aller Elemente berücksichtigen, ob ein oder mehrere Kontrollkästchen mit demselben Namen
vorhanden sind

Code kopieren Der Code lautet wie folgt:
Funktion allSelect(){
var form = document.forms[0];
var state = form.allselectbox.checked;
var length = form.usernames.length;//Wenn es zwei oder mehr Kontrollkästchen mit dem Namen Benutzernamen gibt, wird die Länge des Arrays zurückgegeben
//Wenn es ein Kontrollkästchen mit dem Namen „usernames“ gibt, gibt form.usernames das Kontrollkästchenobjekt anstelle eines Arrays zurück, sodass sein Längenattribut undefiniert ist
if(length){ //Solange in JavaScript die beurteilte Bedingung 0, null oder undefiniert ist, gilt sie als falsch und andere Situationen gelten als wahr
for(var i=0;i form.usernames[i].checked=state;
}
}
sonst{
form.usernames.checked=state;
}
}

Wenn es eine Komponente mit der ID „Benutzernamen“ oder mehrere Komponenten-IDs mit der ID „Benutzernamen“ gibt, ist der von document.getElementById('Benutzernamen') zurückgegebene Wert eine Formularkomponente die ID von „Benutzernamen“, Rückgabe ist die erste Komponente mit der ID „Benutzernamen“.

Wenn eine Komponente mit dem Namen „Benutzernamen“ oder mehrere Komponenten mit dem Namen „Benutzernamen“ vorhanden sind, gibt document.getElementsByName() ein HTMLCollection-Array zurück. Beachten Sie den Unterschied zu document.getElementsByTagName(), das ein Array basierend auf der Tag-Kategorie erhält.
var name = document.getElementsByTagName("usernames"), warning(names[0]) Das hier zurückgegebene Ergebnis ist undefiniert. Ich habe ursprünglich byName mit byTagName verwechselt und kein Tag beginnt mit usernames, < ;/usernames>Das existiert nicht.
GetElementsByTagName gibt jedoch weiterhin eine Array-Sammlung zurück, die keinen Inhalt enthält. Der Name [0] existiert nicht, daher wird undefiniert zurückgegeben, da alle undefinierten Werte angezeigt werden, wenn sie den Bereich des Arrays überschreiten.
var test = {'0','1','2',};alert(test[3]); gibt undefiniert zurück.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage