【发布时间】:2020-03-15 20:15:15
【问题描述】:
我有许多表单,每个表单的数据属性为data-validate。我知道我可以使用以下查询选择这些表单:document.querySelectorAll('form[data-validate]')。
不过,我有两个问题。首先,我如何使用document.forms 选择相同的表单。其次,一种方法是否优于另一种方法?也就是说,我用document.forms还是document.querySelectorAll有区别吗?
谢谢。
【问题讨论】:
-
document.forms和document.querySelectorAll('form')将在可迭代集合中返回相同的表单元素。但是,不同之处在于,如果您执行document.forms,它将选择所有<form>元素,无论它们是否具有data-validate属性,而document.querySelectorAll('form[data-validate]')允许您取利用浏览器内置的选择器系统过滤您的收藏。 -
您可以使用
Array.from(document.forms).filter(form => form.getAttribute('data-validate'))之类的东西,但是否“更好”很大程度上取决于意见。
标签: javascript dom selectors-api