2015-01-08 3 views
1

변경 이벤트가 조달을 수행하지 않는 테이블 셀을 가져 오려는 경우 다음과 같은 문제점이 있습니다.테이블 셀을 가져 오지 못했습니다.

아이디어를 얻는 방법을 잘 알고 있다면 잘 받아 들여질 것입니다.

<tr> 
      <td>1</td> 
      <td><div class="switch switch-small"> 
      <input name="op1" type="checkbox" checked /> 
      </td></div> 
     </td></tr> 

$("tbody tr td input:checkbox").change(function() { 
    id = $(this).parent().parent().children().index(this.parentNode); 
    alert(id); 
}); 

enter image description here

+2

HTML을 제공해 주시겠습니까? 감사! –

+0

1

user1387989

답변

0

간단한

$(function() { 
    $("table [type='checkbox']").on("change", function() { 
     console.log($(this).parent().prev().html()); 
    }); 
}); 

의 jQuery 의미 선택하십시오 : "갖는 테이블에 아무것도 type=checkbox"

+0

는 내가 원하는 것은 내가 변화의 이벤트를 실행 위치를 얻는 것입니다. – user1387989

+0

내 코드 – sodawillow

1

jsBin demo

</td> 다음에 </div>을 입력하십시오. 또한 TD 요소를 3 번 ​​닫는 중입니다. HTML 마크 업을 즉시 검토하십시오.

당신이 체크 박스를 클릭 한 TD 얻고 싶다면 :

$("td :checkbox").change(function() { 
    var TD = $(this).closest("td"); 
    alert(TD.index()); // or use TD.closest("tr").index(); // to get the TR index 
}); 
0

VAR 전지 = $ (이) .closest ('TD를'); var cellIndex = cell [0] .cellIndex

var row = cell.closest ('tr'); var rowIndex = row [0] .rowIndex;

+0

테이블이없는 페이지에서 JS를 연 경우 코드가 중단됩니다. –

1

당신의 질문은 명확하지 않지만, 당신은 라디오 입력에 해당하는 색인을 얻고 싶습니다. @Roko는 그의 대답에 언급 한 바와 같이, 마크 업이 잘못된 것입니다, 그것은 다음과 같은 형식이어야합니다 : 이름 op1 변경 입력, 여기 당신이 어떻게 때

<tr> 
    <td>1</td> 
    <td> 
     <div class="switch switch-small"> 
      <input name="op1" type="checkbox" checked /> 
     </div> 
    </td> 
</tr> 

마지막 인덱스, 1를 얻기 위해 그 :

$("td input[type='checkbox']").on("change", function() { 
    var trParent = $(this).parent().parent().parent(); 
    var id = $("tr").index(trParent); 
    alert(id); 
}); 

도움이 되었기를 바랍니다. 또는 질문을 검토하는 것이 좋습니다.

관련 문제