2012-02-24 4 views
0

HTMLテーブルタグの混乱があり、JQueryを使用して、生成されたすべてのテーブル内の特定のTDセルまでドリルダウンしようとしています。問題は、JQueryが正しいTDセルを取得していることですが、同じ構造のTABLEのシリーズの最初のセルを取得するだけです。ここでJQueryを使用して一連のテーブル内の特定のTDを取得する

<script type="text/javascript"> 
    $(function ($) { 
     $(".dataContent div table tbody tr td").first().css("background", "yellow"); 
    }); 
</script> 

が簡略化されたHTMLの構造である:

<td class="dataContent"> 
    <a href="#"></a> 
    <div> 
     <table>...</table> 
     <div> 
      <table cellspacing="0" cellpadding="0" style="border-width:0;"> 
       <tbody> 
        <tr> 
         <td><a href="#"><img /></a></td><!--this cell--> 
         <td><div>random cell</div></td> 
        </tr> 
       </tbody> 
      </table> 
      <!--Generated Tables with same structure as the TABLE above--> 
      <table></table> 
      <table></table> 
      <table></table> 
      <table></table> 
     </div> 
    </div> 
</td> 

だから私は、最初のセルを取得したいだけではなく、ここで

は、私はそれが正しいTDになります使用していているjQueryのです最初のTABLEだけでなく、以下の生成されたすべてのテーブルにも表示されます。どんな助けもありがとう。

答えて

1

すべてのテーブル内での行の最初にあるすべてのセルを取得する代わりに.first()の使用td:first-child:firstセレクタや.first()メソッドを使用して

$(".dataContent div table tbody tr td:first-child").css("background", "yellow"); 

はjQueryのだけ非常に最初のの要素を返すようになり一致するすべての要素のうち、1つのセルを超えて表示されることはありません。

+0

Arrr!私はそれが何か簡単だったことを知っていたが、私はこれを逃すために愚かな感じ!ご協力いただきありがとうございます。 – crazymatt

1

$(".dataContent div table").eq(0).find('td').eq(0)は、最初のテーブルの最初のTDを示します。

$(".dataContent div table").lengthは、テーブル数を示します。

ループを作成します。簡単です。

+0

投稿していただきありがとうございます、他の答えは簡単に修正されました。 – crazymatt

関連する問題