jQuery如何删除或隐藏除选定的之外的所有html
鉴于以下标记:
some junk content more junk content even more junk
我需要删除除了条形div之外的所有内容,所以我最终只会:
我试过了: $('.foo :not(.bar)').hide();
但是,不符合这一选择的元素显然仍然存在。
是否有一个匹配所有内容的选择器,或者我应该将条形div提取到新的var?
快而脏:
$(function(){ var html = []; $('.bar').each(function(i, item) { html.push($(this).html()); }); $('.foo').html('
'); });
您需要将内容包装在.foo
元素内,在单独元素中的.bar
元素之间。 否则,你不会隐藏这些混蛋而不隐藏整个.foo
元素。
some junk content more junk content even more junk
有了这样的包装器,你应该能够做到这样的事情:
$(".foo > *:not(.bar)").hide();
或者,如果您不关心能够撤消:
$(".foo > *:not(.bar)").remove();