我正在使用node.js。
我正在使用cheerio html解析器来读取html文档。
在这个例子中
<div class="a b c">
<a id="ddd"/>
sample
</div>
我试过这个
var cheerio = require('cheerio');
var c$ = cheerio.load(/*html content*/);
var cntext = c$('div').html();
cntext
包含所需的div及其所有子项。
如何删除div并仅保留子节点?
提前致谢。
答案 0 :(得分:1)
您需要选择div
,依靠选择器方法以及节点的特定属性来区分所需的div
与其他所有属性。
$('div[class="a b c"]')
请参阅https://github.com/cheeriojs/cheerio#selectors
您需要迭代所选div的直接子项
$('div[class="a b c"]').children().each(fn)
请参阅https://github.com/cheeriojs/cheerio#childrenselector
您需要移动在预先找到div
$('div[class="a b c"]').children().each(function(index, element){
$(element).insertAfter($(element).parent());
})
请参阅https://github.com/cheeriojs/cheerio#each-functionindex-element-
您需要删除空的div
$('div[class="a b c"]').remove()
请参阅https://github.com/cheeriojs/cheerio#remove-selector-
在飞行中写道,请告诉我。
答案 1 :(得分:1)
使用jquery的简单解决方案
您可以使用$(HTML_SSTRING_VAR)将其转换为html元素来创建html并使用.html()函数来获取innerHTML,就像在第一种情况下一样 可以使用
var s=$( "#Div" ).html();
var temp=$(s);
alert(temp.html());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div id="Div">
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
</div>
&#13;
找到最后一次出现的&#34;&lt;&#34;之间的子字符串并且第一次出现&#34;&gt;&#34; 假设本机javscript函数应该完美运行,这将是内容。
Javscript Substring Function Documentation
var s=$( "#Div" ).html();
s = s.substring(s.indexOf(">")+1,s.lastIndexOf("<")-1);
alert(s);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div id="Div">
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
</div>
&#13;
另一种简单的方法
只需创建一个div,在其中附加html内容,并在我们通过要删除的div的过程中访问所需内容作为子div的innerHTML
var s=$( "#Div" ).html();
var temp = document.createElement('div');
temp.innerHTML = s;
alert(temp.children[0].innerHTML);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div id="Div">
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
</div>
&#13;
.unwrap()
返回: jQuery说明:删除该组的父级 来自DOM的匹配元素,将匹配的元素留在其中 地点。 .unwrap() documentation