2016-10-26 5 views
-1

Attribut "elements" eines Elements "form" in HTML5 gibt "object" -Elemente zurück. https://www.w3.org/TR/html5/forms.html#category-listedWarum form.elements Elemente "Objekt" zurückgibt?

Aber ich kann nicht "Objekt" Elemente als Benutzer-inputable Felder annehmen. Warum sind "Objekte" enthalten?

Code-Beispiel:

<form id="form1"> 
    <object id="foobar"> 
    </object> 
</form> 

var form = document.getElementById('form1'); 
var elements = form.elements; 
for (var i = 0; i < elements.length; i++) { 
    console.log(elements[i].id); // outputs "foobar" 
} 
+1

Was erwarten Sie zurückgeschickt werden? –

+0

Ich erwarte, dass es interaktive Steuerelemente oder verwandte zurückgibt. "button", "input", "keygen", "select", "textarea" repräsentieren interaktive Steuerelemente. "fieldset" ist ein Container für Steuerelemente. "Ausgabe" steht im Gegensatz zu "Eingabe". Ich kann "Objekt" nicht als ein Element im Zusammenhang mit interaktiven Steuerungen denken. – sunnyone

Antwort

0

Ich hoffe, dass das Snippet unten Dinge ein wenig verdeutlicht.

Wie Sie den Code aus laufenden unten sehen können, ist das Element, in dieser Form ein Object sowie eine Element, HTMLElement und HTMLInputElement.

Willkommen in der wunderbaren Welt der Erbschaft.

var form = document.getElementById('form'); 
 
var elements = form.elements; 
 

 
for (var i=0; i<elements.length; i++) { 
 
    var element = elements[i]; 
 

 
    console.log("Element with name: " + element.name); 
 
    console.log("Element is Object: " + (element instanceof Object)); 
 
    console.log("Element is Element: " + (element instanceof Element)); 
 
    console.log("Element is HTMLElement: " + (element instanceof HTMLElement)); 
 
    console.log("Element is HTMLInputElement: " + (element instanceof HTMLInputElement)); 
 
}
<form id="form"> 
 
    <input name="text" type="text"> 
 
</form>

Verwandte Themen