2017-10-17 185 views
1

我有一個簡單的Web應用程序與這樣看它的輸入文本字段:.getAttribute(「name」)和.name之間有什麼區別?

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

地址10.1.1.50是一個IP地址的缺省值。而從JavaScript謹以此閱讀:

txtip.getAttribute("value") 

現在讓我們假設將其更改爲10.1.1.49。在谷歌瀏覽器的JavaScript代碼以上仍然將返回10.1.1.50,而表達

txtip.value 

返回10.1.1.49

有什麼區別?什麼是「正確的方式」?

+0

您可以在stacksnippets中重現問題嗎? – guest271314

+0

'value'是'input'的一個屬性,所以你可以通過'getAttribute'訪問它,但'value'也是節點類型'input'的一個屬性。我會使用'txttip.value' – JohanP

回答

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>

發現這個網站上可以幫助你試試下面的代碼類型的東西,事件的內容

不同的是,element.value是實時的,如果用戶改變讓我們說,一個文本框輸入,它會反映出來,並顯示給你新的價值。

儘管getAttribute('value')仍然會顯示原始值=「whateverWasHere」的值。

+0

並不總是,這是一個混雜的包。請參閱[* getAttribute()與元素對象的屬性?](https://stackoverflow.com/questions/10280250/getattribute-versus-element-object-properties)在你的答案jQuery的使用是不必要的,並減少你實際上試圖表現出來。 – RobG

+0

感謝您的評論! –

+0

謝謝你們,現在它很清楚 – beddu

相關問題