【发布时间】:2016-07-29 13:23:28
【问题描述】:
下面的代码可以得到带有属性'rowspan'的html表tds,
$elem.find('td').filter('[rowspan]')
但是我怎样才能得到 'rowspan' 大于 1 的 tds,比如:
$elem.find('td').filter('[rowspan > 1]')
【问题讨论】:
标签: javascript jquery filter html-table
下面的代码可以得到带有属性'rowspan'的html表tds,
$elem.find('td').filter('[rowspan]')
但是我怎样才能得到 'rowspan' 大于 1 的 tds,比如:
$elem.find('td').filter('[rowspan > 1]')
【问题讨论】:
标签: javascript jquery filter html-table
试试这样的:-
$elem.find('td').filter(function(){
return (parseInt($(this).attr('rowspan'),10) > 1);
});
【讨论】:
使用:parseInt($(this).attr('rowspan'),10) > 1
【讨论】:
您可以迭代每个td 元素并检查属性rowspan 是否> 1。在我的示例中,我使用css 类来表示td 的rowspan > 1 添加到此元素类pass 或@987654324 @ 相应地。
$("table tbody tr td[rowspan]").each(function() {
$(this).addClass(parseInt($(this).attr("rowspan"), 10) > 1 ? "pass" : "fail");
});
.pass {
background: green;
}
.fail {
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td rowspan='2'>2</td>
<td rowspan='3'>3</td>
<td>no rowspan</td>
<td rowspan='1'>1</td>
</tr>
<tr>
<td rowspan='2'>2</td>
<td rowspan='3'>3</td>
<td>no rowspan</td>
<td rowspan='1'>1</td>
</tr>
<tr>
<td rowspan='2'>2</td>
<td rowspan='3'>3</td>
<td>no rowspan</td>
<td rowspan='1'>1</td>
</tr>
</tbody>
</table>
【讨论】:
您可以将function 应用于您的filter 并返回rowSpan 大于1 的元素:
$.elem.find('td').filter(function() {
return this.rowSpan > 1;
});
请注意,无需包装 attr() 或重新包装 this(如 $(this)),因为 rowSpan 是本机元素属性(方便地已经是数字类型,所以没有数字需要转换)。
$('td').filter(function() {
return this.rowSpan > 1;
}).css('color', 'red')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td>No rowspan</td>
<td rowspan=1>Rowspan 1</td>
<td rowspan=2>Rowspan 2</td>
</tr>
</tbody>
</table>
【讨论】:
要获取 'rowspan' 大于 1 的 tds,您可以尝试以下操作:
var allTdsWithMoreThanOneRowspan = $elem.find('td[rowspan]').filter(function () {
return ($(this).attr('rowspan') > 1);
})
【讨论】: