2

我的 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

4 回答 4

5

td您可以通过以下方式找到它:contains()

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

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

警告:

如果您有其他包含 0 但不完全等于 0 的单元格,:contains则也将在匹配项中包含这些单元格。这意味着100or1,000也可能出现,因为它们也包含 0. 如果你只想要那些值为 的0,而不是其他的,你应该考虑使用过滤器:

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

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

自定义过滤器选择器

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

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

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

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

于 2012-05-28T05:53:35.210 回答
1

嗨,请检查这个演示,我认为这是你真正想要的

于 2012-05-28T06:08:20.827 回答
1

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

$("#mytable td").each(function() {
   var $this = $(this);
   if ($this).text()!="0") $this.show();
   else $this.hide();
});
于 2012-05-28T05:58:33.787 回答
0

val()在这种情况下不能应用。您可以使用$(this).text(),但返回的值是字符串,因此您必须在比较之前将其解析为 int。

于 2012-05-28T05:59:35.007 回答