Nyx*_*nyx 3 html javascript jquery node.js cheerio
如何使用 jQuery/Javascript<p>在第一个中选择两个元素的 HTML <div class="description?正则表达式也很好。这个 jQuery 选择实际上是在 Node.js 中在一个cheerio对象上完成的。
使用
$( $('.description')[0] ).children().not('h2').html()
Run Code Online (Sandbox Code Playgroud)
似乎只抓取文本
Foo Bar
Run Code Online (Sandbox Code Playgroud)
代替
<p>Foo</p>
<p>Bar</p>
Run Code Online (Sandbox Code Playgroud)
HTML:
<div class='description'>
<h2>Hello world</h2>
<p>Foo</p>
<p>Bar</p>
</div>
<div class='description'>
<h2>Goodbye world</h2>
<p>Didi</p>
<p>Deedee</p>
</div>
Run Code Online (Sandbox Code Playgroud)
如果你解构你的 jQuery 语句,你会得到以下内容:
$('.description')[0]
Run Code Online (Sandbox Code Playgroud)
将返回您的第一个<div>节点。
$( $('.description')[0] ).children()
Run Code Online (Sandbox Code Playgroud)
将返回该<div>节点的所有子节点的数组,因此这是一个包含三个节点的数组,一个<h2>和两个<p>。
$( $('.description')[0] ).children().not('h2')
Run Code Online (Sandbox Code Playgroud)
将返回与上面相同的数组,减去<h2>.
$( $('.description')[0] ).children().not('h2').html()
Run Code Online (Sandbox Code Playgroud)
将应用于.html()这些节点中的每一个,即提取节点内的所有 html。而里面<p>Foo</p>是Foo。
这就是你要找的:
$( $('.description')[0] ).children().not('h2').prop('outerHTML')
Run Code Online (Sandbox Code Playgroud)
更新:基于Cheerio 文档:您需要这样做:
如果你想返回outerHTML,你可以使用$.html(selector):
所以,在你的情况下,我会尝试:
$( $('.description')[0] ).children().not('h2').html('p')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1435 次 |
| 最近记录: |