CSS селекторы - как выбрать «для» в CSS? - PullRequest
5 голосов
/ 30 июня 2011

Я использую проверку JQuery.

Когда for теперь действует, валидатор создает такие:

<label class="error" for="username" generated="true">

Поскольку все метки имеют одинаковые class = error могу ли я выбрать с помощью CSS этот точный вариант на основе 'для' ?

Я знаю, как разобраться с этим с помощью jQuery - но всегда ищу самый чистый, самый чистый способ. Любое предложение высоко ценится.

Пит

Ответы [ 3 ]

15 голосов
/ 30 июня 2011

Использование селектора атрибутов (CSS2) :

.error[for="username"]

Это будет работать в IE8 + и во всех современных браузерах.


Селектор атрибутов IE7 содержит ошибки: как описано здесь , чтобы соответствовать for, вы должны использовать htmlFor.

Итак, если вам нужна поддержка IE7, используйте это:

.error[for="username"], .error[htmlFor="username"]

Спасибо IE7, за то, что я сделал мой ответ вдвое дольше, чем нужно.

3 голосов
/ 30 июня 2011

Любой атрибут может быть выбран с помощью CSS или jQuery с использованием нотации [].CSS применяется к любому XML-подобному синтаксису, а не только к HTML - он не знает (или не заботится), какие атрибуты являются «допустимыми», если структура правильно сформирована.

.error[for='username'] {

}

или для«начинается с»

.error[for^='userprefix'] {

}
1 голос
/ 30 июня 2011

В css:

.error[for=username] {
}

В jQuery

$('.error[for=username]')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...