javascript - document.querySelectorAll("[value='a']") 的返回值在元素值被修改后不会改变
问题描述
元素值修改后,无论浏览器修改还是javascript修改,返回值document.querySelectorAll("[value='a']")
都不会改变。
我在客户端上运行 Windows 10 和 chrome 73。下面是演示:
var text1 = document.getElementById("text1");
var text2 = document.getElementById("text2");
var select = document.getElementById("select");
var modify = document.getElementById("modify");
select.addEventListener("click", function () {
console.log("text1.value: " + text1.value);
console.log("text2.value: " + text2.value);
console.log(document.querySelectorAll("[value='a']"));
});
modify.addEventListener("click", function () {
text1.value = "a";
});
<input type="text" id="text1">
<input type="text" id="text2" value="a">
<input type="button" id="select" value="select">
<input type="button" id="modify" value="modify">
- 单击
select
按钮我NodeList [input#text2]
登录浏览器控制台。 - 点击
modify
按钮或直接修改text1
数值。 - 单击
select
我得到NodeList [input#text2]
的按钮,但我希望输出是NodeList(2) [input#text1, input#text2]
。
看起来选择器仅适用于初始 html 值。我试过谷歌这个问题,但那里没有任何线索。
- 如果这种行为是标准行为,目的是什么?
- 如果我想要预期的返回值,是否有解决方法
NodeList(2) [input#text1, input#text2]
?
解决方案
推荐阅读
- javascript - 如何在ajax成功时弹出(打开)引导模式
- google-sheets - 如何翻译 ARRAYFORMULA 中的 COUNTIFS 公式以自动在每一行中插入公式
- jpa - 为可为空的外键字段获取“对象引用未保存的瞬态实例”而不是“外键约束异常”
- java - import class priority in scala vs java
- mysql - 在获取特定列中某些列的组的最大值后,如何为列赋予条件?
- reactjs - 使用 Hapi 反应路由
- apache - 如何自动重定向到 .min 文件
- java - C#(在哪里)到 JAVA
- json - 如何使用已定义 html 结构的 ngFor 显示数据
- spring - 在 Spring MVC 中对控制器类进行单元测试是一种好习惯吗