2013-07-05 11 views
8

zacząłem naukę JavaScript niedawno, ale jest coś, że jestem zmieszany z:JavaScript Element.value vs Element.getAttribute ("wartości")

Jaka jest różnica międzyElement.valueiElement.getAttribute("value")?

faktycznie mój problem jest, gdy próbuję skopiować wartość elementu input z rodzaju text do innego, jeśli mogę użyć pierwszej metody (Element.value) To działa dobrze, ale jeśli pójdę z drugiej metodzie kopiuje pierwszą wartość podaną elementowi i nigdy się nie aktualizuje, gdy zmienię tekst wewnątrz textbox, zachowanie to wydaje mi się dziwne! Czy możecie wyjaśnić, co tu się dzieje?

<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Hello JavaScript</title> 
    <script src="script2.js"></script> 
</head> 
<body> 
    <input id="Text1" type="text" /> 
    <input id="Button1" type="button" value="button" /> 
    <input id="Text2" type="text" /> 
</body> 
</html> 

Plik JavaScript:

var myButton; 

window.onload = function() { 

    myButton = document.getElementById("Button1"); 
    myButton.onclick = function() { 
     var val = document.getElementById("Text1").getAttribute("value"); 
     //var val = document.getElementById("Text1").value; 
     document.getElementById("Text2").setAttribute("value", val); 
    }; 

}; 

Odpowiedz

9

Różnica polega na tym, że element.value jest w czasie rzeczywistym i jeśli użytkownik zmieni, powiedzmy, wejście tekstowe, odzwierciedli to i pokaże ci nową wartość.

Podczas gdy getAttribute('value') nadal będzie wyświetlać oryginalną wartość value="whateverWasHere".

jsFiddle DEMO

+0

Więcej szczegółów http://stackoverflow.com/questions/11973678/difference-between-element-value-and-element-getattributevalue –

+0

bardzo dziękuję:) – Mehran

2

wartość atrybutu value to co można ustawić podczas pisania kodu HTML.

Ten atrybut „s wartość, kiedy czytać, jest używany do wypełnienia elementu valuewłasność.

Ta właściwość jest tym, co otrzymasz później, gdy używasz Element.value i to jest to, co zostało zmienione przez użytkownika lub większość funkcji JavaScript. Atrybut nie zostanie zmieniony, gdy użytkownik zmieni wartość przez interfejs.

Krótko mówiąc, prawie zawsze chcesz używać Element.value i prawie nigdy nie Element.getAttribute("value").

+0

dzięki za odpowiedź sir;) – Mehran

Powiązane problemy