eq(index) Selecter를 사용할때 반복되는 부분에 적용할때...

<table id="rowset_tb">
  <tr>
    <td></td>
     <td><img.../></td>
  </tr>
  <tr>
    <td></td>
     <td><img.../></td>
  </tr>
</table>

위와 같은 테이블에서 각각의 tr마다 두번째 td의 img 요소에 이벤트를 주려고 아래와 같이 코딩을 했다.

 $("#rowset_tb tbody tr td:eq(9) img").click(function(){
  alert("wow");
 });

그냥 생각하면 각각 동작하는것 같이 보이지만 eq(index) 셀렉터는 첫번째 tr td 행에 대해서만 동작한다.
즉 첫째줄 tr의 td에서만 동작하게 된다. 이 부분을 해결하기 위해 아래와 같이 변경하였다.

 $("#rowset_tb tbody tr").find("td:eq(9) img").click(function(){
  alert("wow");
 });

일단 각 tr에 대한 row를 selector로 추출한 후 find를 이용하여 각 td마다 이벤트를 연결시켜 주니 해결되었다.

이 글과 관련된 글
  1. [2010/01/12] jquery 시작(작성중) by antirocker (1)
  2. [2009/06/08] Visual Studio 2008 에서 jQuery intelisense 사용하기 by Winbi (62)
  3. [2009/06/03] IIS에서 확장자가 json 파일이 호출되도록 설정 by Winbi (60)
  4. [2009/11/13] 트랙백주소를 클릭 한번에 클립보드로 복사하기 by Breton (96)
  5. [2009/11/13] jquery animate 효과를 이용한 페이지 맨위로 이동하기 by Breton (1/144)

Leave Comments



T-NAVI