2013-05-20 98 views
0

我遇到了一個question today,其中部分原因是用戶想要在使用jQuery觸發事件時禁用容器中的所有表單元素。查找給定元素的規範有效屬性

對於我的部分答案,我建議選擇容器並找到表單元素,然後用.each()迭代每個容器。

在總體上,選擇類似於此:

$('.container').find('input, textarea, button, select'); 

find()部分是相當長我想,但這些是我能想到的唯一元素根據HTML規範接過disabled屬性(如果有更多,請隨時通知我)。現在我的問題。

是否有反覆通過一組DOM元素(可能由jQuery返回,但vanilla JS也可以),並確定當前元素是否可以接受根據HTML規範有效的屬性? I.E.我有一組元素,在其中一個迭代中,我得到一個strong元素。 disabledstrong元素不做任何處理,因此它跳過它並轉到input元素,該元素爲disabled工作。

回答

2

否瀏覽器不提供用於確定哪些元素/屬性有效的API。它們還提供了很多錯誤恢復功能,因此通過創建具有屬性的元素並查看它們發生的情況來進行測試並不可靠。

您需要根據規格進行比較。

HTML 4和XHTML 1.x具有您可以編寫解析器的DTD。

+0

切和幹。謝謝。也許我會寫一個插件。 – SomeShinyObject