作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
var button = document.querySelector("button");
var input = document.querySelector("input");
var ul = document.querySelector("ul");
var checkInputlength = input.value.length>0;
function createList() {
if (checkInputlength) {
var node = document.createTextNode(input.value);
var li = document.createElement("li");
li.appendChild(node);
ul.appendChild(li);
}
}
button.addEventListener("click", createList);
checkInputlength
由于某种原因总是返回 false。但是,当我将条件放入 if 语句 if (input.value.length>0)
中时,它会按预期工作。谁能告诉我为什么?
最佳答案
您所做的是检查 <input>
的长度的值一次并将结果保存为变量。在该变量的后续查找中它不会改变。从某种意义上说,您已经缓存了该值,或者在输入值的长度为 0 时通过查找一次(且仅一次)来及时卡住它。
请参阅此示例。当您输入输入时,您将看到变量没有更改,但函数返回的值会更改。
var input = document.querySelector("input");
var checkInputlength = input.value.length>0;
function returnBooleanAboutInputLength() {
return input.value.length>0;
}
setInterval(()=>{
console.log("returnBooleanAboutInputLength()", returnBooleanAboutInputLength())
console.log("checkInputlength", checkInputlength)
}, 1000)
<input>
关于javascript - 为什么 `checkInputlength` 总是返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61149724/
var button = document.querySelector("button"); var input = document.querySelector("input"); var ul =
我是一名优秀的程序员,十分优秀!