2008-10-16 9 views
2

javascript/jquery에 새로 추가되었으며 "this"또는 "$ (this)"를 사용하여 현재 객체를 가져 오는 데 어려움이 있습니다.jQuery 여러 라디오 버튼

각 행에는 's_'라는 라디오 버튼 세트가있는 테이블이 있습니다. 그들이에 현재있는 경우에만 내가하지만, 사용자가 라디오 버튼을 선택 할 때마다 테이블에 새 행을 추가 할 jQuery를 함수를 작성하기 위해 노력하고있어

<tr> 
    <td align="left" style="width: 300px"> 
     <div id="div_s_0"> 
     <input type="radio" name="s_0" value="1" />Public 
     <input type="radio" name="s_0" value="2" />Not Public 
     <input type="radio" name="s_0" value="3" />Confidential 
     </div> 
    </td> 
</tr> 
<tr> 
    <td align="left" style="width: 300px"> 
     <div id="div_s_1"> 
     <input type="radio" name="s_1" value="1" />Public 
     <input type="radio" name="s_1" value="2" />Not Public 
     <input type="radio" name="s_1" value="3" />Confidential 
     </div> 
    </td> 
</tr> 

을 : 라디오 버튼 중 어느 것도 기본적으로 선택되지 않습니다 테이블의 마지막 행 클릭 한 라디오 버튼의 이름 속성을 가져 와서 행 색인 ('_'다음에 나오는 부분)을 가져 와서 테이블의 행 수와 비교합니다. 동일하면 새 행을 추가하고, 그렇지 않으면 아무것도 수행하지 않습니다.

내 질문은 두 가지이다, 나는이 공격 방법에 따라 :

1) 내가 행 I의 행 인덱스를 반환하려면 어떻게 이름 라디오 버튼의 속성, 또는 2)을 반환하려면 어떻게 현재 있니?

답변

5

이 방법으로 도움이됩니다. 특정 질문

0

여기 내 머리 위로 떨어져, 일부 검증되지 않은 코드입니다 : 그 무엇

$("#div_s_0 input[type='radio']").onclick = function() { 
    if ($("#div_s_0 input[type='radio']:last").attr('checked') == 'checked') { 
    /* add a new element */ 
    } 
} 

는 사업부에서 라디오 버튼의 각각에 onclick 이벤트를 첨부합니다. onclick은 해당 그룹의 마지막 라디오 버튼이 선택되어 있는지 확인하고, 선택되면 다른 요소를 추가합니다.

나는 아직 테스트하지 않았다고 말했다. 나는 셀렉터 (# div_s_0 ... :last)에 대해 확신 할 수 없으므로 먼저 방화범이 끌려 가라.

$(document).ready(function() { 
    $("input:radio").click(function() { 
     var index = parseInt(this.name.split('_')[1]) 
    }); 
}); 

당신을 도울 수있는 또 다른 것은 : 테이블의 행 수를 검색 :

$($("table").children()[0]).children().length 

희망이 당신이 제공 한 HTML을 사용하면 인덱스를 얻을 것이다

2

1 & 2, 당신의 ID를 테이블을 준 경우,이 예제는 당신이 찾고있는 무엇을 제공해야한다 "MYTABLE"

var rowIndex = $("#mytable tr").index($(this).parents("tr")); 
var inputName = $(this).attr("name"); 
alert("Input Name: " + inputName + "; RowIndex: " + rowIndex);