2010-12-09 79 views
0

我有下表。如何根据td的位置添加不同的类到4列jquery

<table> 
    <tr> 
     <td> 
<img src="images/kategoriimg1.jpg" /> 
<p>Forskerspiren</p> 
     </td> 
     <td> 
<img src="images/kategoriimg2.jpg" /> 
<p>Mangfold i naturen</p> 
     </td> 
     <td> 
<img src="images/kategoriimg3.jpg" /> 
<p>Kropp og helse</p> 
     </td> 
     <td> 
<img src="images/kategoriimg4.jpg" /> 
<p>Verdensrommet</p> 
     </td> 

    </tr> 
    <tr> 
     <td> 
<img src="images/kategoriimg5.jpg" /> 
<p>Fenomener og 
stoffer</p> 
     </td> 
     <td> 
<img src="images/kategoriimg6.jpg" /> 
<p>bla</p> 
     </td> 
     <td> 
<img src="images/kategoriimg7.jpg" /> 
    <p>bla</p> 
     </td> 
     <td> 
<img src="images/kategoriimg8.jpg" /> 
<p>bla</p> 
     </td> 

    </tr> 
    ..... 
    ..... 
    // more tr and td with images like above 
    .... 


</table> 

现在我想首先向所有第一TDS,grid_3中间所有的第二和第三TDS和中间及grid_3欧米茄添加类grid_3,阿尔法最后像这样的jQuery都出去TDS。

<table> 
    <tr> 
     <td class="grid_3 alpha first"> 
<img src="images/kategoriimg1.jpg" /> 
<p>Forskerspiren</p> 
     </td> 
     <td class="grid_3 middle"> 
<img src="images/kategoriimg2.jpg" /> 
<p>Mangfold i naturen</p> 
     </td> 
     <td class="grid_3 middle"> 
<img src="images/kategoriimg3.jpg" /> 
<p>Kropp og helse</p> 
     </td> 
     <td class="grid_3 omega last"> 
<img src="images/kategoriimg4.jpg" /> 
<p>Verdensrommet</p> 
     </td> 

    </tr> 
    <tr> 
     <td class="grid_3 alpha first"> 
<img src="images/kategoriimg5.jpg" /> 
<p>Forskerspiren</p> 
     </td> 
     <td class="grid_3 middle"> 
<img src="images/kategoriimg6.jpg" /> 
<p>Mangfold i naturen</p> 
     </td> 
     <td class="grid_3 middle"> 
<img src="images/kategoriimg7.jpg" /> 
<p>Kropp og helse</p> 
     </td> 
     <td class="grid_3 omega last"> 
<img src="images/kategoriimg8.jpg" /> 
<p>Verdensrommet</p> 
     </td> 

    </tr> 
    .... 
    .... 



</table> 

我感谢您的帮助。

在此先感谢。

+0

正如你可以通过回答看,有大约数不胜数的方式来做到这一点。 ;) – Stephen 2010-12-09 20:01:39

回答

3
var $td = $('td').addClass('grid_3'); 
    $td.filter(':not(:first-child,:last-child)').addClass('middle'); 
    $td.filter(':first-child').addClass('first alpha'); 
    $td.filter(':last-child').addClass('last omega'); 
0

甚至不使用jQuery :)。使用CSS3第n个孩子选择:

http://www.w3.org/TR/css3-selectors/

+0

如果正在创建表或正在动态添加样式,该怎么办? – treeface 2010-12-09 20:02:36

+0

或者您的用户浏览器不支持CSS3? – Ender 2010-12-09 20:04:54

+0

@treeface - 没有指定。我假设它始终是相同的格式。 @ender - 他要求使用jQuery,默认情况下也使用CSS3选择器,所以他使用CSS3 – sethvargo 2010-12-09 20:06:05

0
$('table tr td').addClass('grid_3'); 
$('table tr td:nth-child(0)').addClass('alpha first'); 
$('table tr td:nth-child(1)').addClass('middle'); 
$('table tr td:nth-child(2)').addClass('middle'); 
$('table tr td:nth-child(3)').addClass('omega last'); 
3

尝试......

$("table tr").each(function(){ 
    $(this).find("td:eq(0)").attr("class","grid_3 alpha first"); 
    $(this).find("td:eq(1),td:eq(2)").attr("class","grid_3 middle"); 
    $(this).find("td:eq(3)").attr("class","grid_3 omega last"); 
}); 
相关问题