javascript - JS document.getElementById.value 无法正常工作
问题描述
// 这不是在控制台中打印任何值(空白)——代码 1
const addMovieBtn = document.getElementById("add-movie-btn");
const title = document.getElementById("title").value;
addMovieBtn.addEventListener("click", () => {
console.log(title);
});
<label for="title">Favorite Movie</label>
<input type="text" id="title" />
<button id="add-movie-btn">Add Movie</button>
//这工作正常——代码2
const addMovieBtn = document.getElementById("add-movie-btn");
var title = document.getElementById("title");
addMovieBtn.addEventListener("click", () => {
console.log(title.value);
});
<label for="title">Favorite Movie</label>
<input type="text" id="title" />
<button id="add-movie-btn">Add Movie</button>
我在这里想念什么?第一个代码(代码 1)应该也能正常工作,对吧?
请指教。谢谢你。
注意:我使用的是最新版本的 VS Code Editor、Chrome 和 Windows 10
解决方案
在您的第一个片段中,您title
在加载 js 时进行初始化,此时输入为空。
为了实现您的目标,您需要在单击按钮时获得价值。
const addMovieBtn = document.getElementById("add-movie-btn");
let title = document.getElementById("title").value;
addMovieBtn.addEventListener("click", () => {
title = document.getElementById("title").value;
console.log(title);
});
<label for="title">Favorite Movie</label>
<input type="text" id="title" />
<button id="add-movie-btn">Add Movie</button>
您的第二个片段正在呈现其他内容。您保存到对输入元素title
的引用。此引用保存输入的,并且此值根据当前输入而变化,但由于这不是引用而是值(字符串),因此您无法将其保存到变量并访问它并期望它更新。value
value
推荐阅读
- angular - 在 Angular 6 中封装 ng2-table
- docker - 如何连接到在 docker + supervisord 下运行的 python pdb 调试器?
- thorntail - 无法使用 thorntail 连接到 activemq 资源适配器
- python - 一个 PYTHON 程序,它从一个数字文件中获取输入并计算平均值
- selenium - IE9 和 10 的 Web 驱动程序
- javascript - 过滤搜索所有键值对的对象数组
- sublimetext3 - Sublime 文本拆分视图,顶部 2 列,底部 1 列
- javascript - 未加载 HTTP 提供程序提供的图像
- javascript - jQuery / HTML - 应用字母过滤器时添加无结果消息
- r - R如何将具有多个空格的文本文件拆分为数据框