0

我正在尝试检查我的表格列,如果该列包含“NA”值,那么我需要隐藏表格行。

这是我尝试过的JS代码。

$("table tr td:nth-child(2)").contains("NA", function (){
   ("table tr").hide(); 
});

下表如下所示:

Opti_Mi_Learning_Linear_Pro:        2
Opti_Mi_Learning_Quadratic_Pro:     1
Opti_Mi_Learning_Integer_Pro:       na
Opti_Mi_Learn:                      1
Opti_Mi_Learn_Evolu_Algo:           na
Opti_Mi_Lear_Neural_Networks:       na

有人可以帮我更正我的代码吗?

4

3 回答 3

2

您可以使用contains 选择器。像这样的东西:

$('table td:nth-child(2):contains("na")').parent().hide();

请注意,选择器区分大小写,因此您必须将“na”放在正确的大小写中。

于 2013-06-17T06:53:01.370 回答
1

您想获取元素的文本,然后使用字符串检查,例如:

if ($("table tr td:nth-child(2)").text().indexOf("NA") !== -1) {
     // ...it contains NA, possibly with text before and/or after...
}

或者

if ($("table tr td:nth-child(2)").text() === "NA") {
     // ...it's *exactly* the text "NA" ...
}

上述两项检查均区分大小写。为了使它们不区分大小写,只需.toUpperCase()放在.text().

于 2013-06-17T06:50:05.907 回答
1

一种方法是使用.filter()

$("table tr").filter(function () {
  return $.trim( $(this).find("td:nth-child(2)").text() ) === "NA";
}).hide();
于 2013-06-17T06:54:23.167 回答