1

我有一个小文档,其中每个标签都有一个属性,例如

keep="true"

我如何遍历整个<body></body>并删除这些没有设置此属性的标签的整个 innerHTML(也将它们本身删除)。

如果可能的话,我更喜欢使用 jQuery。

4

2 回答 2

2

您可以将:not()选择器与Attribute Equals选择器结合使用:

$(":not([keep='true'])").remove();

或者甚至是一个简单的Has Attribute选择器,具体取决于您的标记语义:

$(":not([keep])").remove();

编辑:如果要删除匹配的元素但保留其内容,则可以将children()链接到unwrap()中:

$(":not([keep])").children().unwrap();
于 2012-07-28T11:54:25.930 回答
1

keep不是有效属性,您可以使用data-*属性并尝试:

$('*:not([data-keep="true"])').empty()

$('div:not([data-keep="true"])').empty()
于 2012-07-28T11:57:07.803 回答