【问题标题】:jQuery how to select td with rowspan attribute?jQuery如何选择带有rowspan属性的td?
【发布时间】:2016-07-29 13:23:28
【问题描述】:

下面的代码可以得到带有属性'rowspan'的html表tds,

 $elem.find('td').filter('[rowspan]') 

但是我怎样才能得到 'rowspan' 大于 1 的 tds,比如:

$elem.find('td').filter('[rowspan > 1]')

【问题讨论】:

    标签: javascript jquery filter html-table


    【解决方案1】:

    试试这样的:-

    $elem.find('td').filter(function(){
       return (parseInt($(this).attr('rowspan'),10) > 1);
    });
    

    【讨论】:

      【解决方案2】:

      使用:parseInt($(this).attr('rowspan'),10) > 1

      【讨论】:

        【解决方案3】:

        您可以迭代每个td 元素并检查属性rowspan 是否> 1。在我的示例中,我使用css 类来表示td 的rowspan > 1 添加到此元素类pass 或@987654324 @ 相应地。

        $("table tbody tr td[rowspan]").each(function() {
          $(this).addClass(parseInt($(this).attr("rowspan"), 10) > 1 ? "pass" : "fail");
        });
        .pass {
          background: green;
        }
        .fail {
          background: red;
        }
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <table>
          <tbody>
            <tr>
              <td rowspan='2'>2</td>
              <td rowspan='3'>3</td>
              <td>no rowspan</td>
              <td rowspan='1'>1</td>
            </tr>
            <tr>
              <td rowspan='2'>2</td>
              <td rowspan='3'>3</td>
              <td>no rowspan</td>
              <td rowspan='1'>1</td>
            </tr>
            <tr>
              <td rowspan='2'>2</td>
              <td rowspan='3'>3</td>
              <td>no rowspan</td>
              <td rowspan='1'>1</td>
            </tr>
          </tbody>
        </table>

        【讨论】:

          【解决方案4】:

          您可以将function 应用于您的filter 并返回rowSpan 大于1 的元素:

          $.elem.find('td').filter(function() {
            return this.rowSpan > 1;
          });
          

          请注意,无需包装 attr() 或重新包装 this(如 $(this)),因为 rowSpan 是本机元素属性(方便地已经是数字类型,所以没有数字需要转换)。

          示例

          $('td').filter(function() {
              return this.rowSpan > 1;
          }).css('color', 'red')
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
          <table>
            <tbody>
              <tr>
                <td>No rowspan</td>
                <td rowspan=1>Rowspan 1</td>
                <td rowspan=2>Rowspan 2</td>
              </tr>
            </tbody>
          </table>

          【讨论】:

            【解决方案5】:

            要获取 'rowspan' 大于 1 的 tds,您可以尝试以下操作:

            var allTdsWithMoreThanOneRowspan = $elem.find('td[rowspan]').filter(function () {   
               return ($(this).attr('rowspan') > 1);
            })
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-03-27
              • 1970-01-01
              • 2014-05-29
              • 1970-01-01
              • 1970-01-01
              • 2012-03-29
              • 1970-01-01
              • 2013-01-05
              相关资源
              最近更新 更多