2017-02-12 53 views
0

如果在页面上出现了两次tbody,我如何提取第二次出现tbody下的所有跨度值? id的(id = id1,id = id2等)只在整个文档中出现一次,在第二个tbody中。提取跨度之间的所有值

<tbody> 
    <tr> 
     <td><b> 
      <span id="id1">1,209</span></b></td> 
     <td><b> 
      <span id="id2">$&nbsp;14.6381</span></b><br /> 
      (<span id="id3">16:26:20 PM</span>)</td> 
     <td><b> 
      <span id="id4">$&nbsp;14.55</span></b><br /> 
      (<span id="id5">19:58:12 PM</span>)</td> 
    </tr> 
</tbody> 

到目前为止,我有以下

var $ = cheerio.load(html); 
$('tbody').each(function(i, element) { 
if(i == 1){ 
var children = $(this).children(); 
} 
}); 

回答

1

请参见下面的代码。我使用jQuery,但cheerio应该是相同的命令。

//var $ = cheerio.load(html); 
 
$(function() { 
 

 
    var idsFromSpans = []; 
 
    $('tbody') 
 
    .first() //Grab the first tbody 
 
    .next() //Grab the second tbody 
 
    .find('span') //Grab all span elements 
 
    .each(function(i, element) { 
 
     idsFromSpans.push($(element).text()); //Grab contents of span 
 
    }); 
 

 
    console.log(idsFromSpans); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tbody> 
 
    </tbody> 
 
    
 
    <tbody> 
 
    <tr> 
 
     <td><b> 
 
     <span id="id1">1,209</span></b></td> 
 
     <td><b> 
 
     <span id="id2">$&nbsp;14.6381</span></b><br /> 
 
     (<span id="id3">16:26:20 PM</span>)</td> 
 
     <td><b> 
 
     <span id="id4">$&nbsp;14.55</span></b><br /> 
 
     (<span id="id5">19:58:12 PM</span>)</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

+0

谢谢,我需要改变行'idsFromSpans.push之一($(元素)的.text());'得到的值。 – MorningSleeper

+0

@早上睡觉啊!没有意识到你需要跨度的内容。很高兴我的代码可以帮助你。我会随着更改更新它。干杯。 – matt

相关问题