我不确定这是否可能。选择多个元素很容易,但今天我怀疑这是否可能:
$(this).closest("li, + $(this)").css('text-decoration','line-through');
上面的代码肯定不起作用。这只是为了演示这个想法。我想删除整个li
(文本和复选框),所以我选择li
了checkbox
.
$(this).closest("li").andSelf().css('text-decoration','line-through');
或者
$(this).closest("li").addBack().css('text-decoration','line-through');
对于 jQuery 1.8 及更高版本
$(this).closest("li").add(this).css('text-decoration','line-through');
最干净的解决方案是使用addBack,它专门用于此用途:
$(this).closest("li").addBack().css('text-decoration','line-through');
您可以使用.add()
函数添加选择器:
$(this).closest("li").add(this).css('text-decoration','line-through');
使用andSelf
.
描述:将堆栈上的前一组元素添加到当前集合中。
代码:
$(this).closest("li").andSelf().css('text-decoration','line-through');
我现在在文档中读到:
注意:此函数已被弃用,现在是 .addBack() 的别名,应与 jQuery 1.8 及更高版本一起使用。
因此addBack
,如果您使用的是 jQuery 1.8 或更高版本,请使用。
代码:
$(this).closest("li").addBack().css('text-decoration','line-through');
我假设您的 $(this) 代表此处的复选框。如果它在 li 那么,你可以使用
$(this).parent('li').css('text-decoration','line-through');
这将覆盖完整的 li 以及复选框。
$(this).closest("li").andSelf().css('text-decoration','line-through');