2011-10-01 7 views
3

여러 라디오 버튼 그룹 중 첫 번째 라디오 버튼을 자동으로 선택하고 싶습니다. 이 작동하는 동안 여기 jQuery로 여러 라디오 버튼 그룹 중 첫 번째 라디오 버튼 선택

<div class="element"> 
<input type="radio" name="group1" value="1"> 
<input type="radio" name="group1" value="2"> 
<input type="radio" name="group1" value="3"> 
</div> 

<div class="element"> 
<input type="radio" name="group2" value="1"> 
<input type="radio" name="group2" value="2"> 
<input type="radio" name="group2" value="3"> 
</div> 

는 것입니다 :

$('.element').each(function(){ 
    $(this).find('input[type=radio]:first').attr('checked', true); 
}); 
나는 그것이 사용하여 작업 할 수없는 이유

나는 알아낼 수 없습니다 : 각() 메소드를 사용하여 제 1 선택을

아래 코드는 작동하지 않습니다. 첫번째 div의 첫 번째 라디오 버튼 만 선택합니다. 이유는 무엇입니까?

$('.element input[type=radio]:first').each(function(){ 
    $(this).attr('checked', true); 
}); 

감사

답변

10

첫 번째 선택은 각 .element를 반복합니다. 두 번째 선택기는 하나의 요소로만 구성된 element input[type=radio]:first을 반복합니다.

나는 사람이 읽을 수있는 순서로 코드를 번역했습니다

  1. 선택 .element
    checked=true 설정 라디오 입력 요소
    의 선두로부터 찾기 각 .element
    을 통해 이동합니다.
  2. .element의 하위 인 첫 번째 라디오 입력 요소를 선택하십시오.
    선택기와 일치하는 각 요소를 반복합니다 (단 하나)
    집합 checked=true.


대체 방법 :

//Alternative method 
$('element').each(function(){ 
    $('input[type=radio]', this).get(0).checked = true; 
}); 

//Another method 
$('element').each(function(){ 
    $('input[type=radio]:first', this).attr('checked', true); 
}); 
+0

그래서 첫 번째 솔루션을 사용하여 각 .element의 첫 번째 라디오 버튼을 선택할 수 있습니다. 그것을 사용하는 더 이상 직접적인 방법은 없습니다 : 첫 번째 선택기? – Vincent

+0

업데이트 된 답변보기 –

+0

매우 명확한 설명을 해주신 덕분에 – Vincent

1

n 번째의 아이를 사용해보십시오 :

$('.element').each(function(){ 
    $(this).find('input[type=radio]:nth-child(1)').attr('checked', true); 
}); 
2

가장 간단한 방법은 :first-child 선택기를 사용하는 것입니다. 오직 일치하는 요소의 첫 번째 반환 :first, 반대로, :first-child는 부모 요소의 첫 번째 자식 인 모든 요소를 ​​반환합니다

//returns the first radio button in group1, and the first one in group2 as well. 
$('.element input[type=radio]:first-child'); 
에 대한 설명

참조 롭 W의 대답은 왜 코드 ISN ' 일하고있어.