2017-02-12 5 views
0

ページにtbodyという2つの出現があった場合、2番目の出現のスパン間のすべての値を以下のtbodyに抽出するにはどうすればよいですか? id(id = id1、id = id2など)は、文書全体の第2番目のtbodyに1回だけ表示されます。スパン間のすべての値を抽出

<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())へのラインの1つを変更するために必要な;'値を取得します。 – MorningSleeper

+0

@MorningSleeperああ!あなたはスパンの内容が必要であることを理解していませんでした。喜んで私のコードは、ああ助けることができます。それを変更で更新してください。乾杯。 – matt

関連する問題