Как скрыть тег метки в jQuery, который имеет определенное значение для атрибута "для"?

Я хочу скрыть этот тег метки:

<label for="id_url">URL</label>

Единственное, что отличает его от других элементов формы, - это значение внутри атрибута for. У меня нет доступа к форме html, чтобы добавить к ней класс или идентификатор. Итак, как я могу скрыть это?

Ответы

Ответ 1

Используйте селектор атрибутов.

$('label[for="id_url"]').hide();

Если вам нужно использовать отдельную переменную, которая содержит значение целевого атрибута:

var target = 'id_url'; // or whatever
$('label[for="' + target + '"]').hide();

Ответ 2

Атрибут Equals будет точно соответствовать значению любого атрибута.

$('label[for="id_url"]').hide()

http://api.jquery.com/attribute-equals-selector/

Вы также можете использовать другие селектора (начинается с, заканчивается и т.д.), если у вас много ярлыков и/или не обязательно может найти идеальное совпадение.

http://api.jquery.com/category/selectors/

EDIT: обратите внимание, что с точки зрения производительности селекторы на основе атрибутов довольно медленны. Если их у них много, это может привести к довольно заметному замедлению производительности, особенно в IE. Если вам нужно сделать это довольно много, вы можете захотеть взглянуть на более крупные архитектурные изменения (если это возможно).

Ответ 3

Используйте селектор атрибутов jQuery :

$('label[for="id_url"]').hide();