我遇到了question today其中,部分用户希望在使用 jQuery 触发事件时禁用容器内的所有表单元素。
对于我的回答的一部分,我建议选择容器并查找表单元素,然后使用 .each()
迭代每个元素。
总的来说,选择器类似于:
$('.container').find('input, textarea, button, select');
我认为 find()
部分相当长,但这是我能想到的唯一根据 HTML 规范采用 disabled
属性的元素(如果还有更多,欢迎告知)。现在回答我的问题。
有没有办法遍历一组 DOM 元素(可能由 jQuery 返回,但 vanilla JS 也可以)并确定当前元素是否可以采用根据 HTML 规范有效的属性? IE。我有一组元素,在一次迭代中我得到了一个 strong
元素。 disabled
不会对 strong
元素执行任何操作,因此它会跳过该元素并转到 input
元素,该元素 disabled
为之工作。
最佳答案
没有。浏览器不提供 API 来确定哪些元素/属性有效。它们还提供了许多错误恢复功能,因此通过创建具有属性的元素并查看它们会发生什么来进行测试并不可靠。
您需要与规范进行比较。
HTML 4 和 XHTML 1.x 具有 DTD,您可以为其编写解析器。
关于javascript - 查找给定元素的规范有效属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16650949/