我遇到了question today,部分地,用户希望在使用jQuery触发事件时禁用容器中的所有表单元素。
对于我的部分回答,我建议选择容器并找到表单元素,然后使用.each()
迭代每个容器。
整体而言,选择器与此类似:
$('.container').find('input, textarea, button, select');
我认为find()
部分相当长,但这些是我能想到的根据HTML规范获取disabled
属性的唯一元素(如果有更多,请随意通知我)。现在回答我的问题。
无论如何迭代一组DOM元素(可能由jQuery返回但vanilla JS也会起作用)并确定当前元素是否可以根据HTML规范获取有效的属性? I.E.我有一组元素,在其中一个迭代中,我得到一个strong
元素。 disabled
{}未对strong
元素执行任何操作,因此它跳过它并转到input
元素,disabled
为其工作。
答案 0 :(得分:2)
没有。浏览器不提供用于确定哪些元素/属性有效的API。它们还提供了许多错误恢复功能,因此通过创建具有属性的元素并查看它们发生的情况进行测试是不可靠的。
您需要与规范进行比较。
HTML 4和XHTML 1.x具有可以为其编写解析器的DTD。