【问题标题】:Queryselectall for selecting invalid input types用于选择无效输入类型的 Queryselectorall
【发布时间】:2018-10-12 20:40:14
【问题描述】:

为简单起见,我有以下 html 不是我编写的,我无法控制。

<input type="text" id="532523" name="safgafg">
<input type="text" id="453462" name="sdhfd">
<input type="text num" id="2354614" name="fghjsfga">
<textarea></textarea>

我正在尝试为我们的职员编写一个脚本,该脚本必须将数据输入到此 Web 界面,以便她可以将数据从 Excel 复制并粘贴到 Web 界面。

最初,所有输入都是“文本”,所以我可以使用以下内容:

document.querySelectorAll('input[type=text]').entries()

但我无法使用 queryselectall 来获取“文本编号”以及文本区域。我尝试在mdn 上查找它,但它没有关于使用逻辑运算符的任何建议,我尝试this question 使用逻辑运算符但以下没有任何效果:

document.querySelectorAll('input[type=text], input[type=text num], textarea').entries();

【问题讨论】:

  • input[type=text num] 不是一个东西
  • type="text num" 非常无效。
  • 我说html不是我写的,我也管不了。
  • @zer00ne 无法识别的类型将被忽略并视为文本。这就是允许您在旧浏览器中使用 type="number" 之类的东西的原因。但是选择器仍然需要包含无效类型来匹配元素。

标签: javascript html


【解决方案1】:

在您的选择器中为type 属性的值加上引号。

注意:“text num”不是输入的 type 属性的有效值,这就是为什么没有引号的原始选择器不起作用的原因。

console.log(...document.querySelectorAll('input[type="text"], input[type="text num"], textarea').entries());
<input type="text" id="532523" name="safgafg">
<input type="text" id="453462" name="sdhfd">
<input type="text num" id="2354614" name="fghjsfga">
<textarea></textarea>
<div></div>

【讨论】:

    猜你喜欢
    • 2022-07-05
    • 2020-03-23
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2010-11-07
    • 2016-01-07
    • 1970-01-01
    相关资源
    最近更新 更多