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は、それらも一致に含まれます。これは、またはが含まれ100ているため、または1,000が表示される可能性があることを意味します。値がであるものだけが必要で、他には何も必要ない場合は、フィルターの使用を検討する必要があります。 00

$("#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/

于 2012-05-28T05:53:35.210 に答える
1

あなたが10も返したくないと仮定すると、ここに解決策があります:

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

こんにちはこのデモをチェックしてください私はこれがあなたが実際に欲しいものだと思います

于 2012-05-28T06:08:20.827 に答える
0

val()この場合は適用できません。使用できます$(this).text()が、返される値は文字列であるため、比較する前にintで解析する必要があります。

于 2012-05-28T05:59:35.007 に答える