2017-02-12 51 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

相關問題