переключатель hide () * и * его текстовая метка в jquery

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

В принципе, если у вас есть переключатель и его метка:

<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();

Любые идеи? Я предпочитаю не использовать кладж, и он может не соответствовать диапазону в метке, но, возможно, я слишком усерден.


person edzillion    schedule 13.03.2009    source источник


Ответы (7)


$('#zone_r1').parent().hide();

работает на меня

person cobbal    schedule 13.03.2009

Я думаю, это должно сработать для вас

$("label[for=zone_r1],#zone_r1").hide();

Это выбирает ярлык с атрибутом "for", установленным для радиокнопки, которую вы ищете, а также сам радиокнопку, и скрывает их обоих.

person ckramer    schedule 13.03.2009

как насчет $('label:has(#zone_r1)').hide();

person Kobi    schedule 13.03.2009

Для первого переключателя вы можете скрыть саму кнопку, а затем ее родительский элемент:

$('#zone_r1').hide().parent().hide();

Во втором случае вы можете скрыть кнопку и "next":

$('#NY').hide().next().hide();
person Christian C. Salvadó    schedule 13.03.2009

Ты можешь это сделать:

1.) Определите ввод радиокнопки без окружающего ярлыка.

2.) Оберните «текст опции» (текст справа от переключателя) в <span>.

3.) Используйте этот оператор jQuery: $("input:radio:not(:checked), input:radio:not(:checked) + span").hide();

Это выберет переключатель и текст справа от переключателя и скроет его.

person psuphish05    schedule 21.09.2009

Просто поместите селектор метки в родительский элемент:

$(':radio[id=zone_r1]').parent('label').hide();

См. мой пример jsFiddle

person Denis Yusupov    schedule 24.04.2013
comment
Я не знаю, почему вы почувствовали, что вам нужно ответить на этот очень старый и уже отвеченный вопрос, и меня ошеломляет то, что вы на самом деле написали селектор, содержащий [id=...]. Это идентификатор. Вы знаете: #zone_r1. - person vinczemarton; 24.04.2013

скрытие контейнера радиокнопки или TD в зависимости от значения

jQuery ("ввод [тип = радио] [значение = 'EU2']"). parent (). hide ();

person ShahidAliK    schedule 15.11.2016