我在页面上有四个表,我想分别将表格单元格的索引作为目标,其中TABLE作为父级,而不是ROW。此代码返回每行中的索引。
所以我想找到每个表中带有一类“事件”的前三个TD。
$('.section .calendar').each(function(){
$(this).find('td.events').each(function(){
ind= $(this).index()
ind <= 2 ? $(this).css('background','#f90') : $(this).css('background','#000');
})
})
如果我尝试:
ind= $('.calendar td.events').index(this)
它将所有四个表中的单元格索引作为父
ind= $(this).index()
将每行(所有四个表中)的单元格索引作为其父
表的结构通常是有效的:
<table class="calendar">
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tbody>
<tr>
<td></td>
<td class="events"></td>
<td></td>
<td class="events"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td class="events"></td>
<td></td>
<td></td>
<td></td>
<td class="events"></td>
<td></td>
</tr>
(...等)
答案 0 :(得分:2)
您可以将所有tds的集合作为参数传递给索引方法:
$('.section .table').each(function(){
var childtds = $(this).find('td.events');
childtds .each(function(){
ind= $(this).index(childtds );
ind <= 2 ? $(this).css('background','#f90') : $(this).css('background','#000');
})
})
答案 1 :(得分:0)
你可以尝试这样的事情。 它基本上计算当前TD之前的TD数量。
function getTDIndex($td) {
var index1 = $td.prevAll("td").length;
var index2 = $td.closest("tr").prevAll("tr").find("td").length;
var index = index1 + index2;
};
答案 2 :(得分:0)
RaraituL的上述解决方案似乎有效:
$('.section').each(function(){
$(this).find('td.events').each(function(){
var index1 = $(this).prevAll("td").length;
var index2 = $(this).closest("tr").prevAll("tr").find("td").length;
var index = index1 + index2;
index <= 6 ? $(this).css('background','#f90') : $(this).css('background','#000');
})
})