0

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

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

$('#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>
4

1 回答 1

1

对象是真实的,因此返回 jQuery 对象实际上不会过滤任何内容。而是返回它的长度,因为空的 jQuery 对象的长度为0,这是错误的:

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

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

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

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

于 2013-06-18T04:47:31.377 回答