2012-02-03 5 views
0

jQuery 1.7.1 - 확인란의 열이 있는데 선택한 상자의 색인을 배열로 가져 오거나 각 확인란을 반복하고 싶습니다. 선택 여부를 확인하십시오 if 선택한 인덱스를 가져옵니다.jQuery - 선택된 확인란의 색인 얻기

HTML

<tr> 
    <td><input type="checkbox" class="it" name="it"></td> 
</tr> 
<tr> 
    <td><input type="checkbox" class="it" name="it"></td> 
</tr> 
+1

그것은이 라디오 버튼의 경우를 제외하고, 같은 이름으로 같은 형태로 여러'input's을 가지고 유효 아니다 본질적으로 스프레드 아웃 형식의 '선택'입니다. –

+1

@Kolink - 그건 사실이 아닙니다. 유효 할뿐만 아니라 표 형식 데이터 (예 : 여러 광고 항목을 입력 할 때)의 표준 방식입니다. (제출할 때 각 반복 매개 변수는 일반적으로 서버 측 코드의 배열로 처리됩니다.) – nnnnnn

답변

4

. (콜백에 매개 변수없이 .each()을 사용하는 많은 코드가 많이 보일 것입니다.하지만 인덱스를 알 필요가 없기 때문에 가능합니다.하지만 그럴 때도 있습니다.) 또한 jQuery 함수를 호출 할 때 현재 요소에 this을 설정

$(".it").each(function(i) { 
    if (this.checked) { 
     alert("Checkbox at index " + i + " is checked."); 
    } 
}); 

인덱스가 있음을 주목 제로, 그리고 경우에 그것이 제공 한 선택을 (일치하는 요소의 집합 내의 인덱스입니다 명확하지 아니에요의 모든 요소에서 문서). 나는별로 요소를 선택 해요,하지만 당신은 이름을 속성으로 선택할 수 위의

참고 또한이 :

$('input[name="it"]') 
+0

우수. @nnnnnn 감사합니다. 또한 '$ (".pr") [.val()'와 같은 인덱스를 사용하여 숨겨진 입력 유형의 배열에서 특정 값을 검색하는 방법. 이 문제에 대해 제가 별도의 질문을 제기하기를 원하십니까? – SyAu

+1

'$ (".pr") [i] .value' - 인덱스를 알고 있다면 jQuery 객체와 함께 배열 스타일 액세스를 사용할 수 있지만 실제 DOM 요소를 반환하므로'와 같은 jQuery 메서드를 사용할 수 없습니다. val()'을 사용하지만 표준 HTML 입력 요소'value' 속성을 사용하여 값을 얻을 수 있습니다. – nnnnnn

+0

@nnnnnn 다시 감사합니다. 나는 이것을 잠깐 동안 깨뜨리고 있었다. – SyAu

2
var index = 0; 
$('.it').each(function() { 
    if (this.checked) { 
     alert("Box is checked at index=" + index); 
    } 
    index++; 
}); 

예 : 당신은 .each() method jQuery를 당신이 제공 한 콜백 함수에 인수로 인덱스를 전달합니다 사용하는 경우 http://jsfiddle.net/bvUND/

+0

작동합니다. 감사. jQuery는 변수 'index'를 선언하는 대신 색인을 가져올 수있는 방법을 제공합니까? 'this.index'와 같은 것. – SyAu

0

이 오래된 게시물입니다하지만 난 다른 곳에서 도와 동안 우연히 단지에 원 인덱스를 추적하기위한 명시적인 인덱스 var가 없다는 요청과 관련하여 몇 가지 코드를 추가하십시오. index()에서 반환 된 값은 0부터 시작합니다.

var myCheckboxes = $("input[type=checkbox].it"); 

myCheckboxes.each(function(){ 
    alert(myCheckboxes.index(this)); 
    // do whatever you need with the index of the checkbox 
} 

있는 .index에 더()을 여기에서 찾을 수 있습니다 : http://api.jquery.com/index/