jQuery의 테이블 행 및 열 번호


141

jQuery를 사용하여 클릭 한 테이블 셀의 행과 열 번호를 얻는 방법, 즉

$("td").onClick(function(event){
   var row = ...
   var col = ...
});

답변:


216

주어진 컨텍스트에서 코어 / 인덱스 함수를 사용할 수 있습니다. 예를 들어 상위 TR에서 TD의 인덱스를 확인하여 열 번호를 얻을 수 있고 테이블에서 TR 인덱스를 확인하여 행 번호를 얻을 수 있습니다.

$('td').click(function(){
  var col = $(this).parent().children().index($(this));
  var row = $(this).parent().parent().children().index($(this).parent());
  alert('Row: ' + row + ', Column: ' + col);
});

여기서 실행중인 예를 확인 하십시오 .


@grom 열 범위에서 실패하는 이유는 무엇입니까?
EarlyPoster

@Forkrul 습격은, 그것은 실패의 @CMS ROWSPAN's jsbin.com/eyeyu/1099/edit#preview의 텍스트와 셀을 클릭 "12" . 열 인덱스는 4
Andrew D

변수 "data"에 일부 데이터가 있습니다. ....이 col 및 row 값을 사용하여이 "데이터"를 테이블에 추가 할 수
있습니까?

2
주위 ROWSPAN 및 열 병합 작업 : SPAN을 사용하는 경우에 클릭 작업을하게 jsbin.com/eyeyu/1307/edit
eddyparkinson가

9
var row = $(this).closest('tr').index()
SpYk3HH

119
$('td').click(function() {
    var myCol = $(this).index();
    var $tr = $(this).closest('tr');
    var myRow = $tr.index();
});

32

클릭시 COLUMN INDEX 받기 :

$(this).closest("td").index();

클릭하면 ROW INDEX를 받으십시오.

$(this).closest("tr").index();

21

내 머리 꼭대기에서, 한 가지 방법은 이전의 모든 요소를 ​​잡고 계산하는 것입니다.

$('td').click(function(){ 
    var colIndex = $(this).prevAll().length;
    var rowIndex = $(this).parent('tr').prevAll().length;
});

6

테이블을 만들면서 셀에 해당 데이터를 출력 할 수 있습니까?

따라서 테이블은 다음과 같습니다.

<table>
  <thead>...</thead>
  <tbody>
    <tr><td data-row='1' data-column='1'>value</td>
      <td data-row='1' data-column='2'>value</td>
      <td data-row='1' data-column='3'>value</td></tr>

  <tbody>
</table>

그러면 간단한 문제가 될 것입니다

$("td").click(function(event) {
   var row = $(this).attr("data-row");
   var col = $(this).attr("data-col");
}

1
이러한 속성은 어떤 html 사양을 준수합니까? 나는 그들을 찾을 수없는 것 같습니다.
사만다 브랜 햄

5
접두사 'data-'로 시작하는 사용자 지정 특성을 허용하는 HTML 사양 5
Chris Brandsma

사양에 맞지 않더라도 이전 브라우저를 손상시키지 않습니다 <HTML5
Daniel Powell

1
다음을 호출하여 "데이터"필드에 액세스 할 수 있습니다. $ (this) .data ( 'row');
WhiteAngel

0

클릭 처리기를 전체 테이블에 바인딩 한 다음 event.target을 사용하여 클릭 한 TD를 얻는 것이 좋습니다. 그게 내가 1:20 am으로 이것에 추가 할 수있는 모든 것


이것이 문제를 해결하기위한 귀중한 힌트 일 수도 있지만, 좋은 대답도 해결책을 보여줍니다. 의미를 나타내는 예제 코드를 제공하도록 편집 하십시오 . 또는 이것을 주석으로 작성해보십시오.
Toby Speight

1
덕분에, 나는 또 다른 10 년이 답변을 수정 고려할 것
mkoryak
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.