2017-10-17 103 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

相关问题