只显示没有内容的内容?

时间:2013-06-18 04:45:25

标签: jquery html-table

我正在尝试使用此用法创建一个jQuery切换按钮:

编辑(我认为这个逻辑更简洁):只隐藏<tr class="todo-list">的内容为<td class="todo-assigned">的内容。

$('#empty_items').on("click", function(e) {
    $(".todo-list").filter(function(i) { return $(this).find("> .todo-assigned:empty") }).toggle();
});

^这就是我所拥有的,但我知道这不正确。

<tr class="todo-list">
    <td class="todo-assigned">CONTENT!</td>
</tr>

<tr class="todo-list">
    <td class="todo-assigned"></td>
</tr>

<tr class="todo-list">
    <td class="todo-assigned">CONTENT!</td>
</tr>

<tr class="todo-list">
    <td class="todo-assigned"></td>
</tr>

1 个答案:

答案 0 :(得分:1)

对象很简单,因此返回jQuery对象实际上不会过滤任何东西。返回它的长度,因为空的jQuery对象的长度为0,这是假的:

return $(this).children('.todo-assigned:empty').length

您也可以使用:has在选择器字符串中完全执行此操作,但速度会慢一些:

$('#todo-list tr:has(> .todo-assigned:empty)').toggle()

演示:http://jsfiddle.net/pu2KA/