javascript - 输入和 dom 值存储在哪里?

标签 javascript html

这是一个非常基本的问题,但我不知道如何研究它。假设我有一个带有输入字段的 html 文件和一个 javascript 文件,其中包含一个用于获取输入中输入的值的函数:

HTML:

<input type='text' id='value' onclick='getValue()'>

JS 文件:

var val;
function getValue(){
    val = document.getElementById('value').value;
    console.log(val)
}

当用户输入一个值时,该值将存储在 DOM 中。然后,我从 DOM 中获取值并将其存储在浏览器中加载的脚本文件中。

因为它现在存储在我的脚本文件中。如果我重新加载页面,所有存储的值都将重置为其原始文件。

从 DOM 获取的值存储在我加载的 javascript 文件中是否准确?或者它存储在其他地方?

最佳答案

输入值存储在 DOM 树中(如果您想知 Prop 体位置:请参阅代码,例如:Chrome 和 Firefox 的代码)。您发布的 JavaScript 代码会复制该值。该副本独立于 DOM 树中存储的值,您可以删除输入元素,但 JavaScript 中仍会保留该副本。所以答案有三个:

  • 该值首先位于 DOM 树中
  • 当您在 DOM 树中复制时,输入值的副本位于 JavaScript 堆栈中;至少我知道没有一步法来移动它。
  • 如果删除 DOM 元素,您在 JavaScript 中创建的副本仍保留在 JavaScript 中

这使得使用两个不同的程序运行 JavaScript 和 DOM 解析成为可能。 Chrome 使用他们的 V8 机器来实现这一点,你可以将其放入薄包装中并单独运行。如果需要,您可以将结果称为“节点”。

关于javascript - 输入和 dom 值存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33698005/

相关文章:

php - 在 php SESSION 中使用空 - 0 例

javascript - 用户输入的 If 语句放置(带有 code.gs、page.html、page-css.html、page-js.html 的谷歌应用程序脚本)

javascript - ( Node :125008) MaxListenersExceededWarning: Possible EventEmitter memory leak detected

javascript - 如何从 JavaScript 调用 PHP 函数?

javascript - 如何使用ejs和node制作模态框

php - 显示特定的登录用户名

html - 为什么 div 的 CSS 背景图像在浏览器预览中丢失,即使图像存在?

javascript - 为什么这个 javascript 不能在 Windows 8 上运行。1's IE11? (It works on the latest version of Firefox, Chrome, even Windows 7' s IE11)

javascript - IE 8 中的 JS 错误... "Object Required"

javascript - 如何使用 JavaScript 匹配网页上不在 <a> 及其 href 中的关键字?