2012-12-19 4 views
3

셀로판을 입력 매개 변수로 사용하는 기존 함수가 있습니다. 누군가가 테이블의 셀을 클릭 할 때 jQuery : 행 객체에서 셀 객체 가져 오기

MyFunction(cellObj) 

사용하며, 테이블의 HTML은 다음과 같이 표시됩니다

MyFunction(this) //this is the cellObj 

가 지금은 똑같은 함수를 호출 할 필요가 있지만 테이블에, 나는 행을 통해 반복하고있다 및 행 개체 및 셀 개체가 있기 때문에 "이"전달할 수 없습니다. 내 질문에 따라서 rowobject에서 cellobject를 가져 오는 방법입니다.

예.

$("#gv tr:has(td)").each(function() { 
     var cellObj = $(this)........ 
     MyFunction(cellObj); 
}) 

답변

5

그래서 당신은 행에있어, 당신은 그래서 당신이해야 할 모든 행에서 세포를 찾을 수있다, 함수에게 전달 차례로 각 셀을 취득해야하고, 루프를 그 (것)들은, 당신이 당신의 테이블의 행을 가져 와서 루프했던 것과 똑같은 방식으로 말입니다.

이 트릭을 수행해야합니다

$(this).find('td').each(function() { 
    // now your cell is in $(this) 
    MyFunction($(this)); 
}); 

사용하는 대신 var cellObj = $(this)...

편집 :

이 ...

시도, 행 당 한 번만 실행하려면
var cellObj = $(this).find('td:first'); 
MyFunction(cellObj); 

if 이 방법으로 코드를 효율적으로 구조화하지 못할 수도 있습니다. 난 세포를 찾아 내부 함수를 발견하고, 각 행 대신 함수를 전달 줄을 넣을 것입니다.

+1

감사합니다. 셀이있을 때마다 여러 번 실행됩니다. 행 당 한 번만 실행하면 어떻게됩니까? –

+0

내 대답을 편집했습니다. :) – Maccath

관련 문제