Переключатель скрыть() *и* его текстовая метка в jquery
-
22-07-2019 - |
Вопрос
Я возвращаюсь к недавнему проекту, посвященному решению проблем доступности, и следил за тем, чтобы все элементы формы имели метки.Помещение текста метки в тег вызвало проблему с неуклюжим кодом, который я написал раньше.
По сути, если у вас есть переключатель и его метка:
<label for="zone_r1"><input type="radio" name="zone" id="zone_r1" value="NY" />New York</label>
И вы используете jquery, чтобы скрыть это следующим образом:
$('#zone_r1').hide();
Фактическая кнопка скрыта, но не текст метки.Первоначально я сделал интервал для текста метки и скрыл его следующим образом:
<input id="NY" type="radio" name="zone" value="NY" /><span id="nyTXT">New York</span>
и
$('#NY').hide();
$('#nyTXT').hide();
Есть идеи?Я предпочитаю не использовать кладж, и он может не соответствовать диапазону в метке, но, возможно, я слишком усердствую.
Решение
$('#zone_r1').parent().hide();
работает для меня
Другие советы
Я думаю, это должно сработать для тебя
$("label[for=zone_r1],#zone_r1").hide();
При этом выбирается метка с атрибутом «for», установленным для искомого переключателя, а также сам переключатель, и скрывается оба.
как насчет $('label:has(#zone_r1)').hide();
Вы можете сделать это:
1.) Определите ввод переключателя без окружающей метки.
2.) Оберните «текст опции» (текст справа от переключателя) в <span>
.
3.) Используйте этот оператор jQuery: $("input:radio:not(:checked), input:radio:not(:checked) + span").hide();
Это позволит выбрать переключатель и текст справа от переключателя и скрыть его.
Просто поместите селектор «метка» в родительский элемент:
$(':radio[id=zone_r1]').parent('label').hide();
Видеть мой пример jsFiddle
скрытие контейнера переключателя или TD на основе значения
jQuery("input[type=radio][value='EU2']").parent().hide();