2010-08-20 4 views
1

클래스 이름이 라디오 선택으로 시작하고 끝에 숫자 (예 : 라디오 버튼 1, 라디오 버튼 2 등)가있는 다양한 라디오 버튼을 선택합니다. 라디오 버튼을 클릭하면 해당 라디오 버튼에 포함 된 특정 필드가 활성화 또는 비활성화되어야합니다. 좋은 부분은 사용하도록 설정해야하는 클래스가 라디오 버튼 # (예 : radio-option1, radio-option2 등)과 일치한다는 것입니다.jQuery 선택에서 숫자를 구문 분석하는 방법은 무엇입니까?

지금까지, 나는

$('input:radio[class^=radio-selection]').live('click', function() { 
    enableDataGroup($(this).siblings('.radio-option1')); 
    disableDataGroup($(this).siblings('.radio-option2')); 
}); 

난 그냥 작품을 활성화 및 비활성화 증명하고 싶었 ...이이 (사람들은 내 자신의 함수이다로 사용하고 조금 복잡해질 수 있습니다 해제) I를,하지만 지금은 클릭 한 라디오 버튼에서 숫자 값을 구문 분석하여 해당 데이터 그룹을 활성화하고 일치하지 않는 다른 모든 데이터를 비활성화해야합니다. 다음은 내가하고 싶은 의사 코드입니다. 불행히도 Google에서 검색 할 항목을 모르면 구문 분석하여 숫자 값을 추가하는 방법을 알려줄 것입니다.

답변

1

일반적으로 모든 항목에 일괄 처리를 적용한 다음 실제로 사용하도록 설정하려는 항목을 사용 설정하는 것이 더 쉽습니다.

$('input:radio[class^=radio-selection]').live('click', function() { 

    // Disable all controls first by the class 
    $('input:radio[class^=radio-option]').attr('disabled', 'disabled'); 

    // Replace the class text with nothing to get your integer 
    var i = parseInt($(this).attr("class").replace("radio-selection", "")); 
    enableDataGroup($(this).siblings('.radio-option' + i)); 

}); 
+0

이것은 올바른 길을 걷고 있습니다. 코드에 하나의 오류가 있습니다 (편집했습니다). 또한 선택자와 문제가 있습니다. div.radio-option [#] 클래스는 div의 유일한 클래스는 아닙니다. 그래서 [클래스^라디오 선택]을 사용하면 빈 세트가 다시 나타납니다. 이 문제를 해결할 방법이 있습니까? – JasCav

관련 문제