Я уверен, что это до боли просто, но я просто могу это найти.

Мне нужно получить набор текстовых полей из их значения. Мне не нужна ценность, мне нужны элементы. Я хочу что-то вроде:

$(".ProductCode [value:'hideme']").hide();

Я заканчиваю с

unrecognized expression: [value:'hideme']

Кстати,

$(".ProductCode").each(function() { if ($(this).val() == 'hideme') $(this).hide(); });

Работает, но кажется не очень чистым.

9
Dan Williams 11 Авг 2010 в 23:27
Нет необходимости использовать each(). Когда вы выбираете элементы, вы преформируете hide() для всех выбранных элементов. Я отредактировал свой ответ, включив в него пример jsFiddle, который скрывает сразу 2 текстовых поля.
 – 
Peter Ajtai
11 Авг 2010 в 23:58
Хорошо, у меня не только было: вместо =, но и там было место. Благодаря обоим я отдал его @ peter-ajtai для примера jsFiddle. но +1 к обоим.
 – 
Dan Williams
12 Авг 2010 в 00:04

2 ответа

Лучший ответ

Используйте атрибут equals selector jQuery.

$(".ProductCode[value='hideme']").hide();

Чтобы быть более точным, вы также можете использовать селектор нескольких атрибутов:

$("input[class='ProductCode'][value='hideme']").hide();

Разница между ними в том, что первый выбирает все элементы с определенным классом и значением. Второй выбирает только все ВХОДЫ с определенным классом и значением.

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

Вот живой пример.

17
Peter Ajtai 12 Авг 2010 в 00:01

Пытаться:

$(".ProductCode[value='hideme']").hide();

Подробнее см. Селектор равных атрибутов в документации jQuery.

7
Justin Ethier 12 Авг 2010 в 00:10
Вау, я должен был это видеть. Так что я больше не получаю сообщение об ошибке, но и ничего не выбираю. Есть ли список атрибутов или это именно атрибуты HTML, на которые ссылается jQuery?
 – 
Dan Williams
11 Авг 2010 в 23:51
Спасибо, Джастин, я понял, пространство меня тоже сбивало с толку.
 – 
Dan Williams
12 Авг 2010 в 00:08