我发现this question on StackOverflow有一个非常好的答案,但作为初学者,我想要更详细的解释,因为我的情况有点不同:我有一个类似下面的表:
________________________________________________
| id | name | age | location |
|----+--------------+-----+--------------------|
| 1 | Victor | 14 | Bucharest, Romania |
| 2 | John | 17 | New York, USA |
| 3 | Steve | 12 | New York, USA |
| 7 | Michael | 37 | Washington DC, USA |
| 9 | Michaela | 25 | Washington DC, USA |
|----+--------------+-----+--------------------|
此人的ID在我的数据库(MySQL数据库)中设置为AUTO_INCREMENT
,因此如果我删除一条记录,它将像我这里的最后一条记录(从7到9)。我想搜索HTML表格中personId = 3
的行。
因此,基于the question in my link,如何将搜索优化为仅在ID列中?
编辑@yeyene:
这是基于您的代码的功能。实际上,我不需要更改行的背景颜色,我需要行的索引以便稍后使用.eq(index)
对其进行一些操作:
function findTableRow(personId){
$('#people tr').each(function(){
if($(this).find('td').eq(0).text() == personId){
return (row's index?)
}
});
}
答案 0 :(得分:11)
点击此处,DEMO http://jsfiddle.net/yeyene/wAxNu/
$(document).ready(function(){
$('table tr').each(function(){
if($(this).find('td').eq(0).text() == '3'){
$(this).css('background','red');
}
});
});
答案 1 :(得分:4)
您可以使用数据库查询实现此目的:
SELECT (id, name, age, location) FROM table WHERE id = 3;
如果您想在页面上使用过滤器,您可以获得已发布问题的第一个答案:
var tableRow = $("td").filter(function() {
return $(this).text() === "3";
}).closest("tr");
说明:
var tableRow
$("td")
$(this)
表示单元格,.text()
输出文本内容。closest("tr")
,以选择tr
所在的td
。tablerow.hide()
。要隐藏所有行,但不隐藏所选行,请使用以下代码:
$('tr').not(tableRow).hide();