代码之家  ›  专栏  ›  技术社区  ›  eozzy

行跨度(jQuery)的单元格选择不正确

  •  0
  • eozzy  · 技术社区  · 16 年前

    标记:

    <tr>
      <td colspan="3" rowspan="4">1</td>
      <td>2</td>
      <td>3</td>
    </tr>
    

    $("table tr td:first").addClass("first-col-cell");
    $("table tr td:last-child").addClass("last-col-cell");
    

    …根据jQuery文档:第一个选择器应该只选择第一个td(1),但也选择其他2个。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Scott M.    16 年前

    我刚刚做了一个测试页面,你发布的代码运行得很好。但是,该表至少需要5列宽和4行高,否则我认为代码无法正常工作。下面的示例显示jquery代码正在工作。

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $("table tr td:first").addClass("first-col-cell");
        $("table tr td:last-child").addClass("last-col-cell");
    });
    </script>
    <style>
        .first-col-cell {
            background-color: red;
        }
    
        .last-col-cell {
            background-color: blue;
        }
    </style>
    <table>
    <tr>
      <td colspan="3" rowspan="4">1</td>
      <td>2</td>
      <td>3</td>
    </tr>
    <tr>
        <td>some</td>
        <td>content</td>
        <td>for</td>
        <td>teh</td>
        <td>test</td>
        <td>blahh</td>
    </tr>
    <tr>
        <td>some</td>
        <td>content</td>
        <td>for</td>
        <td>teh</td>
        <td>test</td>
        <td>blahh</td>
    </tr>
    <tr>
        <td>some</td>
        <td>content</td>
        <td>for</td>
        <td>teh</td>
        <td>test</td>
        <td>blahh</td>
    </tr>
    <tr>
        <td>some</td>
        <td>content</td>
        <td>for</td>
        <td>teh</td>
        <td>test</td>
        <td>blahh</td>
    </tr>
    <tr>
        <td>some</td>
        <td>content</td>
        <td>for</td>
        <td>teh</td>
        <td>test</td>
        <td>blahh</td>
    </tr>
    </table>