我试图在表中找到一个特定的行,其中第一列中的td值是__thth,第二列中的td值是the_year。
var the_month = 3,
the_year = 15;
var tableRow = jQuery("td").filter(function() {
return jQuery(this).text() == the_month;
}).siblings().filter(function() {
return jQuery(this).text() == the_year;
}).parent('tr')
这段代码几乎就是我想要的,但是它看着每一个td。如何将此限制为仅在第1列中查找__th,在第2列中查找the_year。
编辑:我理解现在缺乏清晰度。我有一张大桌子。我试图找到第一列的值等于我创建的变量的行,称为the_month,这是一个数字,第二列的值是the_year,它也是我创建的变量。这些变量是数字。我最初发布的代码一直在查找the_month的值,让我们说错误行的其他列中的the_month = 3。所以我想查找第一列中编号为3而第二列中编号为15的行。
答案 0 :(得分:2)
试试这个。这将使您的第一个和第二个td被过滤掉。 http://jsfiddle.net/66za2f8n/2/
//you can modify the select to be #idofTable tr
var tableRow = $("table tr").filter(function() {
return $(this).find("td").eq(0).text() == "the_month" &&
$(this).find("td").eq(1).text() == "the_year";
});
console.log(tableRow);
答案 1 :(得分:1)
如果您的代码按原样运行,并且我正确理解您,而不是让您的查询搜索一个月和年,那么您应该搜索一个月然后年
我还没有使用过滤器,但我已经在THIS FIDDLE
中制作了您想要的内容(我认为)以下是随附的代码:
$('tr').each(function(i){
var month = $(this).find('td').eq(0).text();
if(month == 'the_month'){
var year = $(this).find('td').eq(1).text();
if(year == 'the_year'){
var tableRow = i;
console.log(i);
}
}
});
现在,由于你没有发布任何HTML,我只能假设我所写的是你的意思。