2012-06-12 2 views
1

이 작업을 수행하는 데 더 좋은 방법인지 확인하려고합니다.HTML 테이블 열의 각 셀에 대해 X?

데이터의 행과 열이 몇 개인 표준 HTML 표가 있다고 가정 해 보겠습니다. 내가 뭘하고 싶은 각 행이나 해당 열에 속한 세포에 함수를 적용하는 것입니다. 지금 제가 노력하고있는 것은 3 깊이 루프이며 실제로 실제로 최고는 아닙니다.

<table id="myTable"> 
<thead> 
<tr> 
    <th>Last Name</th> 
    <th>First Name</th> 
    <th>Email</th> 
    <th>Due</th> 
    <th>Web Site</th> 
</tr> 
</thead> 
<tbody> 
<tr> 
    <td>Smith</td> 
    <td>John</td> 
    <td>[email protected]</td> 
    <td>$50.00</td> 
    <td>http://www.jsmith.com</td> 
</tr> 
<tr> 
    <td>Bach</td> 
    <td>Frank</td> 
    <td>[email protected]</td> 
    <td>$50.00</td> 
    <td>http://www.frank.com</td> 
</tr> 
<tr> 
    <td>Doe</td> 
    <td>Jason</td> 
    <td>[email protected]</td> 
    <td>$100.00</td> 
    <td>http://www.jdoe.com</td> 
</tr> 
<tr> 
    <td>Conway</td> 
    <td>Tim</td> 
    <td>[email protected]</td> 
    <td>$50.00</td> 
    <td>http://www.timconway.com</td> 
</tr> 
</tbody> 
</table> 

웹 사이트 열을 대문자로 나타내거나 그와 함께 깔끔하게 해보려고합니다. 아마 것 :

*select the tbody using dom selector or jquery. 
*for loop with each column 
    *check if the data is what i want 
*for loop for each row 
    *do my function to each cell 

이 조금 느려질 수 있습니다 나는 항상 때 내가 할 수있는 중첩 루프를 방지하려고합니다. 어쨌든 Dom을 사용하여 열을 컨테이너로 처리 할 수 ​​있습니까? 당신은 단지 그것을 스타일을 원하는 경우 jQuery를

$("td", "#myTable tbody").each(function(index, elem){ 
// do my stuff here 
}); 

답변

2

jQuery를 사용하는 경우 .each() 함수를 사용할 수 있습니다.

$('#myTable td').each(function() { 
    // action to perform. Use $(this) for changing each cell 
}); 

행의 특정 셀 하나만 변경하려는 경우 : eq() 또는 : nth-child() 셀렉터를 사용하면 특정 셀이 행에서 다른 사람들없이 그렇게 조작된다.

아래 코드 당량()에 대한 인덱스로서, 행의 첫 번째 셀을 조작 할 여전히 첫번째 아이 조작 아래 0

$('#myTable tr td:eq(0)').each(function() { 
    // action to perform. Use $(this) for changing each cell 
}); 

코드에서 시작하지만 nth- 대한 인덱스 child()는 1에서 시작합니다

$('#myTable tr td:nth-child(1)').each(function() { 
    // action to perform. Use $(this) for changing each cell 
}); 
+0

아주 좋은 기능. 심지어 그것을 알지도 못했습니다. – Overtone

0

의 난 당신이 또한 JQuery와에 그 CSS 선택기를 사용할 수 있습니다 알고 지금까지 CSS를

tbody tr td:nth-child(4){font-weight:bold;} 

를 사용하는 것이 훨씬 더 빨리

+0

'각'도 필요합니까? – Mohamad

+0

에 달려 있습니다. 그가 동일한 기능을 바인딩하려면 아니오를 선택하십시오. 그가 색인에 따라 다른 일을하고 싶다면 그렇다. –

1

를 사용

IE for (cell x in Column y) 
{ doMyfunction(); } 
관련 문제