JS 中“.innerHTML”和“.value”的区别

IT技术 javascript
2021-02-10 03:09:10

我对JavaScript.innerHTML.valueJavaScript之间的区别感到困惑这是我的代码:

<body>
Input string: <input type="text" id="input" />
....
</body>

当我使用此代码时,我无法获取输入字符串的内容:

var str=document.getElementById("input").innerHTML;

当我使用以下代码时,它可以工作:

var str=document.getElementById("input").value;

有谁知道它们之间有什么区别?

3个回答

value 指的是输入元素(或 textearea)的值

<input value="hello world">

值将是"hello world"(或在里面输入的任何值)


innerHTML 指的是 HTML 元素内的内容。

<div>
  <span class="hello">
     All tags and their children are include in innerHTML.
  </span>
  All this is part of innerHTML.
</div>

div 标签的 innerHTML 将是字符串:

  '<span class="hello">
     All tags and their children are include in innerHTML.
  </span>
  All this is part of innerHTML.'

.innerHTML 属性指的是文字 HTML 标记,一旦分配、解释并合并到当前文档的 DOM(文档对象模型)中。另一方面,.value 属性仅指典型的 HTML 输入控件的内容,例如文本框。并非每个 HTML 元素都支持 input 属性,而大多数(如果不是全部)都支持 innerHTML 属性。

.value 为您提供表单元素(输入、选择、文本区域)的当前设置值,而 .innerHTML 根据元素包含的 DOM 节点构建 HTML 字符串。