2013-11-01 2 views
4

테이블 행을 클릭 할 수있게하고 싶습니다. 모든 열은 클릭 할 수 있어야하지만 첫 번째 열은 클릭 할 수 있어야합니다. 그러나 그들이 행을 클릭 할 때 이것을 달성하고 싶습니다.행에서 jQuery를 사용하여 첫 번째 테이블 열을 선택하는 방법은 무엇입니까?

$('.table tbody tr').click(function (e) { 
     alert ($(this).find('td').eq(1).text()); 
    }); 

이 코드는 항상 내가 행을 클릭 상관없이 실행 :

내가 지금까지 가지고있는 코드입니다. 그러나 모든 표 셀을 첫 번째 셀을 제외하고 클릭 할 수 있어야합니다.

가능합니까?

답변

5

당신은 같은 것을 할 수있다 ". 클릭 된 요소가 td:first-child이거나 td:first-child 인 조상이있는 경우, 아무것도하지 않고, 그렇지 않으면 계속"

$('.table tbody tr').on('click', function(e) { 
    if ($(e.target).closest('td:first-child').length) { 
     return; 
    } 

    // your code 
}); 

이 말한다)},

$('.table tbody tr:not(:first-child)').click(function (e) { 
    alert ($(this).find('td').eq(1).text()); 
}); 
+0

위대한 작품입니다! 이 코드를 사용해 주셔서 감사합니다. +1하고 받아 들였습니다! –

+0

이것은 정말 좋은 답변입니다.'.closest()'가 – billyonecan

+0

에 전달 된 셀렉터에 대해 스스로 테스트 한 것을 전혀 알지 못했습니다. 나는 이것도 생각 해보지 않았을 것입니다. –

1

CSS를하지 선택기를 사용하여 첫 번째 TR 요소를 건너

+1

첫 번째 행을 건너 뜁니다. OP는 첫 번째 열 (즉, 각'tr '의 첫 번째'td ')을 건너 뛰기를 원합니다. – lonesomeday

+0

@lonesomeday 그 점에 대해 감사드립니다. 나는이 질문에 대해 오해했습니다. 당신의 대답에 +1. – juju

1

이 같은 위임 이벤트를 사용하려고

$('.table tbody tr').delegate('td', 'click', function() { 
    alert ($(this).text()); 
    // implement your logic... 

을;

jsFiddle

관련 문제