我有一个表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'); }
}
当然,这有几个问题,我似乎无法弄明白。欢迎任何想法!
感谢。
答案 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'类的东西,只需把那个前导点放回去。
希望有所帮助!