jQuery如何用rowspan属性选择td?

时间:2016-04-08 10:07:54

标签: javascript jquery filter html-table

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

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

但是如何才能获得'rowspan'超过1的tds,例如:

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

5 个答案:

答案 0 :(得分:5)

您可以将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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试这样的事情: -

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您可以迭代每个td元素并检查属性rowspan是否为&gt; 1.在我的例子中,我使用css类来表示td是否有行数&gt; 1相应地添加到此元素类passfail

$("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 :(得分:0)

要获得'rowspan'超过1的tds,您可以尝试以下方法:

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