jQuery - 隐藏表,如果它包含1和1

时间:2011-03-31 14:21:53

标签: jquery

我有一张看起来像这样的表:

<table>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>

我如何以这样的方式构建jQuery选择器,以便查找包含&nbsp;的单元格的表并将表设置为display: none;

请帮忙吗?

3 个答案:

答案 0 :(得分:4)

$('table').each(function ()
{
    var $table = $(this),
        numTRs = $table.find('tr').length,
        $tds = $table.find('td'),
        numTDs = $tds.length;

    if (numTRs === 1 && numTDs === 1 && $tds.html() === '&nbsp;')
    {
        $table.hide();
    }
});

测试用例:http://jsfiddle.net/mattball/WhAcB/

答案 1 :(得分:0)

这将根据规范工作,仍然是纯粹的Jquery:

$('table tr:only-child td:only-child').filter(function () {
         return $(this).html() === '&nbsp;';}).closest("table").hide();

困扰我的是桌子上的特殊角色。否则会更简单。

<table>
  <tr>
    <td>nbsp</td>
  </tr>
</table>

<script type="text/javascript">
    $('table tr:only-child td:only-child:contains("nbsp")').closest("table").hide();
</script>

答案 2 :(得分:0)

查看following

$('table').each(function() {
    var $this = $(this);
    var trCount = $this.find('tr').length;
    var tdCount = $this.find('td').length;

    if (trCount == 1 && tdCount == 1) {
        var tdContents = $this.find('td:first').html();
        if (tdContents == '&nbsp;') {
            setTimeout(function() {
                $this.hide();
            }, 2000);
        }
    }
});