选择器并通过Div中的表进行迭代

时间:2009-12-12 04:31:33

标签: javascript jquery jquery-selectors css-selectors

我一直在努力解决这个问题,无法让这个迭代器工作。我有以下HTML,我试图遍历所有行(第一行除外)并提取单元格(td)2和3中的值:

<div id="statsId">
   <table width="220" cellspacing="0" cellpadding="0" border="0">
      <tbody>
         <tr>
            <td width="65"/>
            <td width="90"/>
            <td width="65"/>
         </tr>
         <tr style="font-weight: bold;">
            <td align="left">$1.00</td>
            <td>
               <a href="#">UserID1</a>
            </td>
            <td>Single</td>
         </tr>
         <tr>
            <td align="left">$6.99</td>
            <td>
               <a href="#">UserID2</a>
            </td>
            <td>Multiple</td>
         </tr>
         <tr>...
     .....(snip)

我尝试使用以下迭代器来迭代除了作为“div#statsID”的子项的表的第一行以外的所有行,并获取第2和第3个单元格的值(在示例中,第一个提取的单元格将具有“UserID1”和“Single”的值,但不起作用。

$('div#statsId > table tr:not(:nth-child(1))').each(function(i, ele) {
           var secondCol = $('td:nth-child(2)', ele).innerHTML
           var thirdCol= $('td:nth-child(3)', ele).text()
    .....
  });

关于如何指定和迭代作为div子级的表的行(除了第一行)的任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:4)

$("#statsId > table tbody tr:not(:first)").each ( function() {
    var secondCol = $(this).find('td:nth-child(2)').html();
    var thirdCol= $(this).find('td:nth-child(3)').text();
});

<强> 注意

  1. 您可以单独使用id选择器。无需使用标签名称。

  2. jQuery对象没有innerHTML。请改用html()