2009-03-13 10 views
7

최근 프로젝트에서 접근성 문제를 분류하고 모든 양식 요소에 레이블이 있는지 확인했습니다. 레이블 텍스트를 태그에 넣으면 이전에 작성한 일부 불쾌한 코드에 문제가 발생했습니다. 당신은 라디오 버튼과 레이블이있는 경우jquery에서 hide() 라디오 버튼 * 및 * 텍스트 레이블

기본적으로, : 실제 버튼이 숨겨져

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

하지만 레이블 텍스트 :

<label for="zone_r1"><input type="radio" name="zone" id="zone_r1" value="NY" />New York</label> 

을 그리고 당신과 같이 그것을 숨기기 위해 jQuery를 사용 . 원래 나는 레이블 텍스트의 범위를 만들어 숨겨과 같이 :

<input id="NY" type="radio" name="zone" value="NY" /><span id="nyTXT">New York</span> 

$('#NY').hide(); 
$('#nyTXT').hide(); 

어떤 아이디어가? 나는 kludge를 사용하지 않는 것을 선호하지만 레이블의 범위와는 유효하지 않을 수 있지만 지나치게 열광적 인 것일 수 있습니다. 나

답변

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

작품 : 두 번째 경우를 들어

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

당신 버튼과 "next"형제를 숨길 수 있습니다 :

$('#NY').hide().next().hide(); 
1

무엇을 첫 번째 라디오 버튼의 경우

2

$('label:has(#zone_r1)').hide();에 대해, 당신은 다음의 parent 실제 버튼을 숨길 수 있습니다에 대한

21

난 당신

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

이것은 당신이 찾고 라디오 버튼뿐만 아니라, 라디오 버튼 자체로 설정 속성과 "를"둘 다 숨 깁니다와 라벨을 선택이 작동해야한다고 생각

0

이 작업을 수행 할 수 있습니다

1) 주변 레이블없이 라디오 버튼 입력을 정의합니다.

2. <span>에있는 "옵션 텍스트"(라디오 버튼 오른쪽에있는 텍스트)를 래핑하십시오.

3. )이 jQuery를 문을 사용 $("input:radio:not(:checked), input:radio:not(:checked) + span").hide();

이 라디오 버튼 라디오 버튼의 오른쪽에있는 텍스트를 선택하고 그것을 숨길 것입니다.

0
상위에

만 넣어 '라벨'선택 :

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

jQuery를 ("입력 [TYPE = 라디오] 값에 기초하여 라디오 버튼 용기 또는 TD 숨어 my jsFiddle example

+1

왜이 늙고 이미 대답 한 질문에 답해야 할 필요가 있다고 느꼈는지 모르겠지만 실제로는 [[id = ...]'을 (를) 포함하는 선택기를 작성했다는 사실에 놀랐습니다. 그건 신분증이야. 알다시피 :'# zone_r1'. – SoonDead

0

보기 = 'EU2'] "). parent().숨는 장소();

관련 문제