我有以下html表格布局:
<table border="1" id="staff">
<tr>
<th>Company</th>
<th>Contact</th>
<th>Country</th>
</tr>
<tr id="1">
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr id="2">
<td>Berglunds snabbköp</td>
<td>Christina Berglund</td>
<td>Sweden</td>
</tr>
<tr id="5">
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr id="8">
<td>Ernst Handel</td>
<td>Roland Mendel</td>
<td>Austria</td>
</tr>
<tr id="9">
<td>Island Trading</td>
<td>Helen Bennett</td>
<td>UK</td>
</tr>
<tr id="12">
<td>Königlich Essen</td>
<td>Philip Cramer</td>
<td>Germany</td>
</tr>
<tr id="13">
<td>Laughing Bacchus Winecellars</td>
<td>Yoshi Tannamuri</td>
<td>Canada</td>
</tr>
<tr id="15">
<td>Magazzini Alimentari Riuniti</td>
<td>Giovanni Rovelli</td>
<td>Italy</td>
</tr>
<tr id="16">
<td>North/South</td>
<td>Simon Crowther</td>
<td>UK</td>
</tr>
</table>
由于某种原因,我想通过jquery找到低于数字的tr id。假设,数字是11,所以小于11的id是9,如果数字是7,那么id是5.我正在尝试如下:
var rank = 5;
var target_id = $('#staff tr').filter(function() {
return this.id < rank;
}).last();
alert(target_id);
但它不起作用。它显示“对象对象”。在这种情况下如何获得tr id。
答案 0 :(得分:3)
target_id
是一个jQuery对象,因此您应该评估其ID属性以获取其ID,即target_id.attr('id')
。此外,您应该使用parseInt()
将ID转换为安全的整数,并允许进行比较:
var rank = 5;
var target_id = $('#staff tr').filter(function() {
return parseInt(this.id, 10) < rank;
}).last().attr('id');
alert(target_id);
答案 1 :(得分:0)
将其更改为
var rank = 5;
var target_id = $('#staff tr').filter(function() {
return this.id < rank;
}).last().attr('id');
alert(target_id);
原始的只返回(已过滤的)行