【发布时间】:2020-01-27 17:14:23
【问题描述】:
我想指定我想保留哪些元素,但要使用它的结构。 示例:
<html>
<head>
<meta xx>
</head>
<body>
<div class="some1">
<div class="some1-1"></div>
<div class="some1-2"></div>
<div class="some1-3"></div>
<div class="some1-4"></div>
<div class="some1-5"></div>
</div>
<div class="some2">
<div class="some2-2">
<div class="some2-2-1"></div>
<div class="some2-2-2"></div>
</div>
<div class="some2-3"></div>
<div class="some2-4"></div>
<div class="some2-5"></div>
</div>
</body>
</html>
而我只需要保留,例如: .some2-2-1, .some-2-3, .some-1-3,通过删除所有其他元素,并保留它的父母,所以它将是:
<html>
<head>
<meta xx>
</head>
<body>
<div class="some1">
<div class="some1-3"></div>
</div>
<div class="some2">
<div class="some2-2">
<div class="some2-2-1"></div>
</div>
<div class="some2-3"></div>
</div>
</body>
</html>
我无法指定要删除哪些元素(它是动态的),但只能指定要保留的元素,如何完成?
$('*:not('.some2-2-1, .some-2-3, .some-1-3')').remove()
在这种情况下不起作用;)
【问题讨论】:
-
您的示例 HTML 有点不一致/令人困惑。为什么
some1的后代以some1-2开头而不是some1-1开头?为什么没有some2-1?您还说您想保留some2-3-1,但在示例中找不到。
标签: javascript jquery node.js cheerio