2011-01-20 15 views
2

私は中程度の単純な問題があり、私はそれを実装するための最良の方法を見つけようとしています。不思議に思ったものについては JQuery子供の数

が、これは(CSS、JSを追加することができますが、コンテンツの残りの部分は、クローズドソースや編集には使用できません)編集できないページからのデータをこすりするために使用され、私はを反復処理しています

要素(たとえば、tr)です。特定の数のtd要素が存在する場合のみを見たいと思います。

例えば、すべてのtrのために、私はそれはそれを行うための最善の方法は何ですか3人のtd子供

を持っている場合を考えてみたいですか?

答えて

5

あなたはこのような何かを試みることができる:

var result = $('tr').filter(function(){ 
    return $(this).children('td').length === 3; 
}); 

あなたは、あなたが好きなスクレイピングのいずれかの種類を行うことができます。簡単な例:

result.each(function(i,e){ // for each row 
    // e = one of the selected rows 
    $(e).children('td').each(function(i,e){ // for each td in the row 
    your_scraping_function(e.text()); // etc. 
    }); 
}); 

@patrickは、以下の指摘するように、あなたはもちろんチェーンの削れプロセスをすることができます直接それはあなたのコードのために理にかなっている場合filter()の出力に。

編集:'td'セレクタがchildren()に追加されました。ベルトとサスペンダー。

編集:結果を歩く方法の例をOPコメントごとに追加しました。

+0

私にそれを打つ。実際には、技術的にタグを取ることができるので、私は子供の中に 'tr'セレクターを置くでしょう()。 – Tesserex

+0

これらの結果からどのように反復することができますか? –

+0

@Tesserex、あなたは 'td'を意味すると思います。傷つけることはできません。追加されました。 –