2013-05-20 3 views
0

Я столкнулся с question today, где отчасти пользователь хотел отключить все элементы формы в контейнере при запущенном событии с использованием jQuery.Поиск специальных допустимых атрибутов для данного элемента

Для части моего ответа я предложил выбрать контейнер и найти элементы формы, а затем повторить по каждому из них с помощью .each().

В целом, селектор был похож на это:

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

find() часть была довольно долго я думал, но это были единственные элементы, которые я мог думать о том, что взял атрибут disabled согласно HTML спецификации (если есть больше, пожалуйста, не стесняйтесь сообщать мне). Теперь на мой вопрос.

Есть ли способ для итерации по группе элементов DOM (возможно, возвращен jQuery, но vanilla JS тоже будет работать) и определить, может ли текущий элемент принять атрибут, действительный в соответствии со спецификацией HTML? И.Е. У меня есть группа элементов, и на одной из итераций я получаю элемент strong. disabled ничего не делает для элемента strong, поэтому он пропускает его и переходит к элементу input, для которого работают disabled.

ответ

2

Нет. Браузеры не предоставляют API для определения того, какие элементы/атрибуты действительны. Они также предоставляют множество функций для восстановления ошибок, поэтому тестирование, создавая элемент с атрибутами и видя, что с ними происходит, не является надежным.

Вам нужно будет сравнить его со спецификацией.

HTML 4 и XHTML 1.x имеют DTD, для которых вы можете написать синтаксический анализатор.

+0

Сокращение и сушка. Благодарю. Может быть, я напишу плагин. – SomeShinyObject

Смежные вопросы