jQuery:按索引选择表列

时间:2011-02-21 21:51:40

标签: javascript jquery

我有一个表MyTable,我想使用循环选择列i并测试列i是否具有某个css类。

我试过了:

thestop = 4; // simplified for clarity

for (i = 0; i < thestop; i++){
   if ( $('#MyTable .th').eq(i).hasClass('MyClass') )
      { $(this).width('60'); }
}

当然,这有几个问题,我似乎无法弄明白。欢迎任何想法!

感谢。

2 个答案:

答案 0 :(得分:4)

$('#MyTable th.MyClass').each(function(i) {
    $(this).width( arr[i] );
}); 

其中arr是包含宽度的数组。

答案 1 :(得分:1)

我发现的事情是.th会找到的元素,而不是<th>元素(使用普通th)。另外,在这种情况下,我不确定$(this)是指所选元素 - 我认为它的行为与.each(function() {})函数中的行为类似......

无论如何,我认为你可以用一个非常优雅的单行代码来做到这一点:

thestop = 4;
$('#MyTable th.MyClass:lt('+thestop+')').width('60px');

这会在表格中找到索引小于<th>的所有thestop(使用jQuery :lt selector),并在其中设置宽度。如果你确实想要用'th'类的东西,只需把那个前导点放回去。

希望有所帮助!