我有一个小文档,其中每个标记都有一个像
这样的属性 keep="true"
如何遍历整个<body></body>
并删除没有此属性集的这些标记的整个innerHTML(也将其自身删除)。
如果可能,我更愿意使用jQuery。
答案 0 :(得分:2)
您可以将:not()选择器与Attribute Equals选择器结合使用:
$(":not([keep='true'])").remove();
或者甚至可能是一个简单的Has Attribute选择器,具体取决于您的标记语义:
$(":not([keep])").remove();
修改:如果您想删除匹配的元素但保留其内容,可以将children()链接到unwrap()而不是:
$(":not([keep])").children().unwrap();
答案 1 :(得分:1)
keep
不是有效的属性,您可以使用data-*
属性并尝试:
$('*:not([data-keep="true"])').empty()
$('div:not([data-keep="true"])').empty()