2016-05-05 8 views
1

dies ist mein Code:null und undefined in Objekte

<body> 
    <p id="x"></p> 
    <p id="y"></p> 
    <form action="2.php" method="post" name="frm"> 
     <input type="text" name="srch"> 
    </form> 
    <script> 
     obj = document.forms["frm"]["srch7"]; 
     obj1 = document.getElementById("noexist"); 
     document.getElementById("x").innerHTML = obj; 
     document.getElementById("y").innerHTML = obj1; 
    </script> 
</body> 

warum obj undefined zurück, sondern Obj1 null zurück, document.forms [ "frm"] [ "srch7"]; und document.getElementById ("noexist"); beide sind Objekte und müssen null zurückgeben, weil Elemente nicht existieren.

Antwort

3

Beide Fälle unterschiedlich sind, mit der ID

obj = document.forms["frm"]["srch7"]; 
//Here you are trying to access a property that 
// is not present under document.forms.frm. 

obj1 = document.getElementById("noexist"); 
//Here it is returning null because getElementById implemented in that way. 
// getElementById will return null if the DOM search didn't find any element 
// based on the supplied id. 
+0

warum document.getElementsByName ("NOEXIST") zugewiesen wurde noch nicht; nichts zurückgeben; Diese Anweisung ist wie document.getElementsById ("noexist") – Ehsan

+0

@ehsan Es wird nichts zurückgegeben. Es wird eine leere 'nodeList' zurückgegeben –

+0

warum Null zurückgeben, wie document.getElementsById (" noexist "), die Null zurückgeben? – Ehsan

2

Weil Form frm besteht und seine Eigenschaft srch7 nicht definiert ist, bedeutet, nicht definiert. Aber wenn Sie versuchen, Element durch die ID noexist zu erhalten, ist dieses Element null, oder es existiert nicht.

+1

* document.getElementById * muss * * * mit der entsprechenden Spezifikation zurückgeben: [* W3C DOM Level 4 *] (http://www.w3.org/TR/dom/#dom-nonelementparentnode-getementbyid). – RobG

0
obj = document.forms["frm"]["srch7"]; 
obj1 = document.getElementById("noexist"); 
  • hier für objdocument.forms["frm"] ist null so die Eigenschaft eines null Objekt ist undefined.
  • Und für obj1 der Wert document.getElementById("noexist"); ist null.
  • Das sind also die Unterschiede zwischen diesen beiden Objekten.
1

Denn hier versuchen Sie das Objekt/Element aus dem Dom zu bekommen, und wenn es nicht das Objekt/Element nicht findet gibt es leeren Standardwert, dh null

obj1 = document.getElementById("noexist"); 

Objekt Und hier versuchen, den Wert eines Feldes (nicht das Objekt) zu erhalten, und wenn es keinen Wert findet, der diesem Feld oder dieser Variablen zugewiesen ist, wird undefined zurückgegeben.

undefined bedeutet eine Variable deklariert wurde, aber ein Wert

obj = document.forms["frm"]["srch7"]; 

finden Sie in diesem Beitrag What is the difference between null and undefined in JavaScript?

Verwandte Themen