jQuery - 检查空的TD,如果全部为空则隐藏父TR

use*_*259 8 html css jquery

我想检查空TD(仅限类啊),如果所有都是空的,那么我想隐藏父TR.我遇到的问题是,我的空TD包含""我不知道如何测试那些?

http://jsfiddle.net/FeQ7h/1/

<table>
  <tr>
    <td class="requirementRight">Requirement</td>
    <td class="a">&nbsp;</td>
    <td class="b">&nbsp;</td>
    <td class="c">&nbsp;</td>
    <td class="d">&nbsp;</td>
    <td class="e">&nbsp;</td>
    <td class="f">NOT EMPTY</td>
    <td class="g">&nbsp;</td>
    <td class="h">&nbsp;</td>
  </tr>
  <tr>
    <td class="requirementRight">Requirement</td>
    <td class="a">&nbsp;</td>
    <td class="b">&nbsp;</td>
    <td class="c">&nbsp;</td>
    <td class="d">&nbsp;</td>
    <td class="e">&nbsp;</td>
    <td class="f">&nbsp;</td>
    <td class="g">&nbsp;</td>
    <td class="h">&nbsp;</td>
  </tr>
Run Code Online (Sandbox Code Playgroud)

if ( $('td.a:empty, td.b:empty, td.c:empty, td.d:empty, td.e:empty, td.f:empty, td.g:empty, td.h:empty') ) {
   // hide the parent tr
} ?
Run Code Online (Sandbox Code Playgroud)

Akt*_*tee 5

"如果为空"不清楚,因为在您的示例中,它们充满了"nbsp".这就是我创建一个名为isEmpty()的函数的原因,因此您可以在那里定义自定义规则.既然你不想要requireRight,我把td:not(.requirementRight).这不是正确的方法.

这样做的正确方法,就是把第二个类放在啊,比如

<tr>
    <td class="requirementRight">Requirement</td>
    <td class="checkempty a">&nbsp;</td>
    <td class="checkempty b">&nbsp;</td>
    <td class="checkempty c">&nbsp;</td>
    <td class="checkempty d">&nbsp;</td>
    <td class="checkempty e">&nbsp;</td>
    <td class="checkempty f">NOT EMPTY</td>
    <td class="checkempty g">&nbsp;</td>
    <td class="checkempty h">&nbsp;</td>
  </tr>
Run Code Online (Sandbox Code Playgroud)

所以我们可以调用tr.find(tr.checkempty)..

无论如何,这是代码!

$("tr").each(function() {
  var trIsEmpty = true;
  var tr = $(this);

    tr.find("td:not(.requirementRight)").each(function() {
      td = $(this);

        if (isEmpty(td) === false)  {
         trIsEmpty = false;   
        }
    });

    if (trIsEmpty == true) {
         tr.hide();                       
    }
});

    function isEmpty(td) {
        if (td.text == '' || td.text() == ' ' || td.html() == '&nbsp;' || td.is(":not(:visible)")) {
            return true;
        }            

        return false;
    }
?
Run Code Online (Sandbox Code Playgroud)

工作示例:http://jsfiddle.net/FeQ7h/7/