【问题标题】:jQuery addClass to second TablejQuery addClass 到第二个表
【发布时间】:2011-04-25 18:03:50
【问题描述】:

我一定会丢失它,但我无法将类添加到第二个表(ID 为“table2”),类似于下面的代码。在我当前的代码中,表没有用 id 标记,我这样做只是为了向您展示我需要向哪个表添加一个类。

<div id="content_area">
  <table id="table1">
    <tr>
      <td>data</td>
      <td>
        <table><tr><td>data</td></tr></table>
        <table><tr><td>data</td></tr></table>
      </td>
      <td>
        <table><tr><td>data</td></tr></table>
      </td>
    </tr>
  </table>
  <table id="table2"><tr><td>data</td></tr></table>
</div>

$('#content_area').find('table:eq(1)').addClass('stuff');

【问题讨论】:

    标签: jquery addclass next


    【解决方案1】:

    这对我有用:

    $('#content_area').children('table:eq(1)').addClass('stuff');
    

    这需要对现有代码进行最少的更改。

    【讨论】:

    • 这是正确的,我仔细检查了我的代码,我试图抓取的表格实际上是在一个 FORM 中,但这基本上起到了作用
    【解决方案2】:

    怎么样

    $('#content_area > table:nth-child(2)').addClass('stuff');
    

    【讨论】:

    • 这将为每个第二个孩子添加类,即两个表将获得类的东西。 jsfiddle.net/naveed_ahmad/aLmc2/4
    • 现在完美,比遍历每个孩子并找到正确的索引优化了很多
    【解决方案3】:

    试试:

    $('#content_area table').eq(4).addClass('stuff');
    

    在您的示例中,带有id="table2" 的表实际上是 content_area 内的第 5 个表。开始计算每个&lt;table&gt; 标签。

    如果表 1 中的表是动态的,您可能应该使用:

    $('#content_area').children('table:eq(1)').addClass('stuff');
    

    这将查看 content_area 的直接子级并从这些子级获取第二个表。 [根据Kevin Buchan的回答]

    见:http://jsfiddle.net/tAZht/2/

    【讨论】:

    • 不幸的是我的原始代码是动态的,我不能指望静态表,所以这个数字可能会随着第一个表('table1')中生成的表的确切数量而变化。
    • 更新了我的答案,@Kevin Buchan 的答案可能会在动态表的情况下对您有所帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    相关资源
    最近更新 更多