jQuery搜索表,用于特定列中具有多个特定值的行

时间:2015-05-05 16:25:00

标签: jquery

我试图在表中找到一个特定的行,其中第一列中的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的行。

2 个答案:

答案 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,我只能假设我所写的是你的意思。