如何用jquery检查td是否包含“NA”值

时间:2013-06-17 06:48:41

标签: jquery html-table

我正在尝试检查我的表列,如果列包含“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

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

3 个答案:

答案 0 :(得分:2)

您可以使用contains selector。像这样:

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

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

答案 1 :(得分: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()之后。

答案 2 :(得分:1)

一种方法是使用.filter()

$("table tr").filter(function () {
  return $.trim( $(this).find("td:nth-child(2)").text() ) === "NA";
}).hide();