我正在尝试使用此用法创建一个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>
答案 0 :(得分:1)
对象很简单,因此返回jQuery对象实际上不会过滤任何东西。返回它的长度,因为空的jQuery对象的长度为0
,这是假的:
return $(this).children('.todo-assigned:empty').length
您也可以使用:has
在选择器字符串中完全执行此操作,但速度会慢一些:
$('#todo-list tr:has(> .todo-assigned:empty)').toggle()