javascript - 使用 querySelectorAll 选择多个元素

标签 javascript css-selectors selectors-api

我有这段代码:

var requiredFields = el.querySelectorAll("input[required]:not(:disabled):not([readonly]):not([type=hidden])");

如果我想将 textareaselect 添加到查询中,我会这样结束:

var requiredFields = el.querySelectorAll("input[required]:not(:disabled):not([readonly]):not([type=hidden])"+  
",select[required]:not(:disabled):not([readonly]):not([type=hidden])"+
",textarea[required]:not(:disabled):not([readonly]):not([type=hidden])");

我的感觉是这可能会更好..但是如何呢?

奖励:请给我 querySelectorAll 函数的好资源。

最佳答案

正如 Shadow Wizard 所说,至少你可以在各个地方删除不必要的 :not([type=hidden]) 它没有意义(select文本区域).

我没有看到结果有问题:

var requiredFields = el.querySelectorAll(
    "input[required]:not(:disabled):not([readonly]):not([type=hidden])" +  
    ",select[required]:not(:disabled):not([readonly])"+
    ",textarea[required]:not(:disabled):not([readonly])");

...尤其是因为它将整个事情交给选择器引擎以利用它可以做的任何优化。

或者,您可以为所有相关输入提供一个公共(public)类,然后使用:

var requiredFields = el.querySelectorAll(
    ".the-class[required]:not(:disabled):not([readonly]):not([type=hidden])");

...但我不确定它能给你带来多少。

Please give me a good resource for querySelectorAll function.

the specification . MDN通常也是放置这些东西的好地方。

关于javascript - 使用 querySelectorAll 选择多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20677933/

相关文章:

javascript - 此处出现意外的“super”关键字

javascript - 将 Excel 公式转换为 JavaScript

css - 以 css 中最后列出的对象为目标

php - 从子 css 元素获取特定 css 元素 id 的值

javascript - 如何使用 querySelector 将数据传递到 DOM

javascript - 闭包和回调

javascript - node.js中 "process.stdout.write"和 "console.log"的区别?

javascript - jquery 选择器适用于所有浏览器?

javascript - 元素的 name 属性对 querySelectorAll 不可见,并且不会出现在其 HTML 中

javascript - 如何修复 : document. querySelector ("").onclick() 不工作