【问题标题】:What is the difference between .getAttribute("name") and .name? [duplicate].getAttribute("name") 和 .name 有什么区别? [复制]
【发布时间】:2017-10-17 12:31:57
【问题描述】:

我有一个简单的网络应用程序,其中有一个输入文本字段,如下所示:

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

地址10.1.1.50 是IP 地址的默认值。从javascript我会这样读:

txtip.getAttribute("value")

现在让我们假设将其更改为10.1.1.49。在 google chrome 中,上面的 javascript 代码仍然会返回10.1.1.50,而表达式

txtip.value

返回10.1.1.49

有什么区别?什么是“正道”?

【问题讨论】:

  • 你能在 stacksn-ps 重现问题吗?
  • valueinput 的属性,这就是为什么您可以通过getAttribute 访问它,但value 也是节点类型input 的属性。我会使用txttip.value

标签: javascript html dom attributes cross-browser


【解决方案1】:

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') 仍会显示原始 value="whateverWasHere" 值。

【讨论】:

  • 并非总是如此,情况好坏参半。请参阅getAttribute() versus Element object properties? 在您的答案中使用 jQuery 是不必要的,并且会减损您实际尝试显示的内容。
  • 感谢您的评论!
  • 谢谢你们,现在已经清楚了
猜你喜欢
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2013-03-31
  • 2011-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多