找到0值的td

时间:2012-05-28 05:51:02

标签: jquery

我的html页面中有这样的表格

<table id="mytable">
  <tr id="classified">
    <td>1</td>
  </tr>
  <tr id="unclassified">
    <td>0</td>
  </tr>    
</table>

所以,在document.ready上我想检查哪个列有0值,如果值为o则隐藏该行,

我已经编写了这段代码,但似乎无法正常工作

$(document).ready(function IsValidTableContent() {
    $('#mytable tr td').each(function () {
        if ($(this).val() == 0) {
            $(this).hide();
        } else {
            $(this).show();
        }
    });
});

4 个答案:

答案 0 :(得分:5)

您可以使用:contains()找到td

$("#mytable td:contains(0)");

小提琴:http://jsfiddle.net/UCgSL/

警告:

如果您有其他单元格包含0但不完全等于0,:contains也将包括匹配中的单元格。这意味着1001,000也可能会显示,因为包含 0。如果您只想要那些值为0且没有其他内容的人,则应考虑使用过滤器:

$("#mytable td").filter(function(){
  return $(this).text() == 0;   
});

小提琴:http://jsfiddle.net/UCgSL/1/

自定义过滤器选择器

如果使用.filter过于冗长,您可以滚动自己的过滤器选择器:

$.expr[":"].exactly = function( e, i, m ) {
    return $(e).text() == m[3];
};

$("#mytable td:exactly(0)");​

小提琴:http://jsfiddle.net/UCgSL/2/

答案 1 :(得分:1)

假设您不想再返回10,这是一个解决方案:

$("#mytable td").each(function() {
   var $this = $(this);
   if ($this).text()!="0") $this.show();
   else $this.hide();
});

答案 2 :(得分:1)

您好,请检查 DEMO 我认为您真正想要的是

答案 3 :(得分:0)

在这种情况下无法应用

val()。 您可以使用$(this).text(),但返回的值是字符串,因此您必须在比较之前在int中解析它。