2017-10-17 21 views
1

Ich habe eine einfache Web-Anwendung mit einem Texteingabefeld in es wie folgt aussehen:Was ist der Unterschied zwischen .getAttribute ("name") und .name?

<input id="txtip" type="text" value="10.1.1.50" /> 

Die Adresse 10.1.1.50 ist ein Standardwert für eine IP-Adresse. Und von Javascript würde ich es wie folgt lesen:

txtip.getAttribute("value") 

Nun wollen wir es 10.1.1.49 ändern annehmen. In Google Chrome wird das oben Javascript-Code noch 10.1.1.50 zurückkehren, während der Ausdruck

txtip.value 

kehrt 10.1.1.49.

Was ist der Unterschied? Was ist der "richtige Weg"?

+0

Können Sie das Problem bei stacksnippets reproduzieren? – guest271314

+0

'value' ist ein Attribut von' input', weshalb Sie über 'getAttribute' darauf zugreifen können, aber 'value' ist auch eine Eigenschaft des Knotentyps' input'. Ich würde 'txttip.value' verwenden. – JohanP

Antwort

2

var el = document.getElementById('testBox'); 
 

 
$(document).focusout(function() { 
 
alert('el.value = ' + el.value); 
 
    alert('el.getAttribute("value") = ' + el.getAttribute('value')); 
 
    e.preventDefault(); 
 

 

 
});
<h2>Change value in the text box</h2> 
 

 

 
<input id="testBox" type="text" value="original value" /> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

Fand dieses auf Web helfen könnten Sie Code schreiben Sie versuchen, folgende und focusOut

Der Unterschied ist, dass element.value Echtzeit ist, und wenn ein Benutzer Änderungen sagen wir mal, ein Textbox-Eingabe, wird dies widerspiegeln und Ihnen den neuen Wert zeigen.

Während getAttribute ('Wert') wird immer noch den ursprünglichen Wert = "whateverWasHere" Wert.

+0

Nicht immer, es ist eine gemischte Tasche. Siehe [* getAttribute() versus Element object properties? *] (Https://stackoverflow.com/questions/10280250/getattribute-versus-element-object-properties) Die Verwendung von jQuery in Ihrer Antwort ist unnötig und beeinträchtigt das, was Sie tun versuche tatsächlich zu zeigen. – RobG

+0

Danke für den Kommentar! –

+0

danke Jungs, jetzt ist es klar – beddu

Verwandte Themen