Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除所有不具有特定属性的元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript 删除所有不具有特定属性的元素

Javascript 删除所有不具有特定属性的元素,javascript,jquery,html,Javascript,Jquery,Html,我有一个小文档,其中每个标记都有一个属性,如 keep=“true” 如何遍历整个并删除这些未设置此属性的标记的整个innerHTML(也删除它们本身) 如果可能的话,我更喜欢使用jQuery。您可以将选择器与选择器结合使用: $(":not([keep='true'])").remove(); 或者甚至是一个简单的选择器,具体取决于您的标记语义: $(":not([keep])").remove(); 编辑:如果要删除匹配的元素但保留其内容,可以链接到: keep不是有效的属性,您可以使用

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

keep=“true”

如何遍历整个
并删除这些未设置此属性的标记的整个innerHTML(也删除它们本身)

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

您可以将选择器与选择器结合使用:

$(":not([keep='true'])").remove();
或者甚至是一个简单的选择器,具体取决于您的标记语义:

$(":not([keep])").remove();
编辑:如果要删除匹配的元素但保留其内容,可以链接到:


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

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


谢谢,非常有帮助。我是否可以为例如a
设置
keep=“true”
,并跳过它的子对象(与父对象一起保存)?@user,是的,您必须使用
children().unwrap()
而不是
remove()
来执行此操作。我的意思是-如果父对象设置了属性,是否可以保留子对象,即使那些孩子没有它?@user,那要看情况了。您的
[keep]
元素是否都是同一祖先下的同级兄弟?(你真的应该在你的问题中提到这些要求。)几乎每个div都不一样。有些有简单的文本内容,有些包含多级结构。。。保留所有具有属性的父项、其所有子项以及其子项的子项等将是完美的。我是否可以为例如a设置数据keep=“true”并跳过其子项(与父项一起保留)?是的,您可以选择div标记,这也比使用通用选择器更快,尝试更新后的答案。我的意思是-如果孩子的父母设置了属性,即使他们没有设置属性,也可以保留孩子吗?@user1559555是的,我理解,更新后的答案会保留具有
data keep=“true”
属性的div标签的孩子,并删除那些没有属性的孩子。
$('*:not([data-keep="true"])').empty()
$('div:not([data-keep="true"])').empty()