嗯,基本上,我有一个像这样设置的表,但是<td>
个元素可以有任意数量的rowpans ......
<table width="100%">
<tr class="tablerow0">
<td class="tablecol_0" colspan="4">Content</td>
</tr>
<tr class="tablerow1">
<td class="tablecol_0" rowspan="2">More Content</td>
<td class="tablecol_1" colspan="3">Some More Content</td>
</tr>
<tr class="tablerow2">
<td class="tablecol_1">And Yet More Content</td>
<td class="tablecol_2">Content</td>
<td class="tablecol_3">Content</td>
</tr>
</table>
好的,我想做的是确定可以这样做的行数的数量:
$("td").each(function() {
$(this).attr('rowspan');
});
但是我需要return false
每个行的每个函数大于1。例如,当它找到行数为2的元素时,它不应该继续到下一个元素,因为rowspan附加到下一个元素。但更重要的是,我需要遍历<tr>
元素的行标。
示例,如果我有此表设置:
<table width="100%">
<tr class="tablerow0">
<td class="tablecol_0" rowspan="2">Content</td>
<td class="tablecol_1">Content</td>
<td class="tablecol_2">Content</td>
</tr>
<tr class="tablerow1">
<td class="tablecol_1">More Content</td>
<td class="tablecol_2">Some More Content</td>
</tr>
<tr class="tablerow2">
<td class="tablecol_1">And Yet More Content</td>
<td class="tablecol_2">Content</td>
<td class="tablecol_3">Content</td>
</tr>
</table>
需要使用<tr>
获取此处的最后class="tablerow2"
,因为行数仅涵盖tablerow0
和tablerow1
。
希望你理解我的意思,它需要能够在<td>
元素中循环,并且只有在超过rowspan
数量时才能执行某些操作表。 rowspan可以超过2,我只是简化了这个,以便人们掌握我在这里要求的内容。此外,行数大于1的<tr>
元素可能超过1个,因此它也应该能够知道这一点。我想我需要在这里构建一个rowpans数组,数组长度将基于每个<td>
rowspan值。
答案 0 :(得分:1)
//cache the tr elements to loop through them
var $TRs = $('tr');
//this type of loop will perform quickly
for (var i = 0, len = $TRs.length; i < len; i++) {
//check to make sure the last TR element doesn't have a TD child element with a rowspan attribute
if (i == 0 || $TRs.eq(i - 1).children('[rowspan]').length == 0) {
//we are on the first TR element or the previous TR element does not have a child TD element with a rowspan attribute
}
}
您还可以将[rowspan]
更改为[rowspan=2]
以检查特定的行数值。
以下是演示:http://jsfiddle.net/JyQYW/
以下是检查超过rowspan=2
:
if (i == 0 || ($TRs.eq(i - 1).children('[rowspan=2]').length == 0 && (i > 1 && $TRs.eq(i - 2).children('[rowspan=3]').length == 0)) && (i > 2 && $TRs.eq(i - 3).children('[rowspan=4]').length == 0))) {
新代码检查以确保我们有足够的行,然后检查最后三行是否影响当前行。