TD的Jquery条件选择器

时间:2016-06-15 13:50:47

标签: javascript jquery css datatables

我希望能够将一个类添加到TR元素,具体取决于第一个TD元素的值。

例如:

如果我有以下数据数组:

[1,2,3,4] [5,6,7,8]

每个数组代表一个tr,每个元素都是一个td,我想突出显示第一个TD等于5的TR。

我将如何做到这一点?

谢谢,

4 个答案:

答案 0 :(得分:1)

以下示例可以提供帮助!

$(function() {
  var tr = $('tr').find('td:first-child');
  tr.each(function() {
    if ($(this).text() == 5)
      $(this).parent('tr').addClass('highlight');
  });
});
tr.highlight {
  background-color: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
  </tr>
  <tr>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
  </tr>
  <tr>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
  </tr>
</table>

答案 1 :(得分:1)

我设法通过使用fnRowCallback函数

来解决这个问题
'fnRowCallback': function(nRow, aData, iDisplayIndex) {
  $(nRow).css('cursor', 'pointer');
  $(nRow).prop('title', 'Select Company');
  if (aData.CompId === "COMP01") {
    $(nRow).find('td').addClass('selectedCompany');
  }
  return nRow;
},

答案 2 :(得分:0)

您可以将first-child:contains与Jquery

一起使用

$('td:first-child:contains("5")').parent('tr').addClass('selected')
tr.selected {
  background: yellow;
}
tr.selected td:first-child {
  font-size: 1.5em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>5</td>
    <td>6</td>
    <td>7</td>
  </tr>
  <tr>
    <td>1</td>
    <td>5</td>
    <td>7</td>
  </tr>
</table>

编辑注意:: 这将在字符串上选择5的所有第一个td

答案 3 :(得分:0)

假设所需行td的内容为“2”,其中任何一个都可以工作:

$(document).ready(function() {
  var findMe = "two";

  $('#mytable').find('tr').filter(function(index) {
    var isTwo = $(this).find('td').eq(0).text() === findMe;
    return isTwo;
  }).addClass('highlight');

  $('#mytable').find('tr').find('td:first').filter(':contains("' + findMe + '")').parent('tr').addClass('highlight');

});