如果其中一个td有一些内容,如何将类添加到tr。

时间:2016-08-25 10:20:52

标签: javascript jquery

如果其中一个td具有内容,如何将类添加到tr。这是我的代码。

HTML

<table>
<tr>
<td>Some content</td>
<td>Some content</td>
<td></td>
<td>Some content</td>
<td>Some content</td>
<td class="last"></td>
</tr>
<tr>
<td>Some content</td>
<td>Some content</td>
<td>Some content</td>
<td>Some content</td>
<td>Some content</td>
<td class="last">Some content</td>  
</tr>
</table>

Jquery的

$('tr').each(function(){
if($('td.last').length > 0  {       
    $(this).addClass('someclass');
}
});

https://jsfiddle.net/odpb3tg3/

4 个答案:

答案 0 :(得分:3)

您可以使用.filter()

有效地完成此操作
$('tr').filter(function(){
  return $('td.last', this).text().length > 0;
}).addClass("SomeClass");

你必须根据这个对象遍历tds

答案 1 :(得分:2)

结合使用 :has() :not() :empty psedudo类选择器。

$('tr:has(td.last:not(:empty))').addClass('someclass');

$('tr:has(td.last:not(:empty))').addClass('someclass');
.someclass {
  color:red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>Some content</td>
    <td>Some content</td>
    <td></td>
    <td>Some content</td>
    <td>Some content</td>
    <td class="last"></td>
  </tr>
  <tr>
    <td>Some content</td>
    <td>Some content</td>
    <td>Some content</td>
    <td>Some content</td>
    <td>Some content</td>
    <td class="last">Some content</td>
  </tr>
</table>

答案 2 :(得分:1)

:not :empty 以及 closest() 的单行中尝试此操作,< / p>

$('td.last:not(:empty)').closest('tr').addClass('someclass');

$('td.last:not(:empty)').closest('tr').addClass('someclass')
.someclass{color:red}
.someclass .last{color:blue}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>Some content</td>
    <td>Some content</td>
    <td></td>
    <td>Some content</td>
    <td>Some content</td>
    <td class="last"></td>
  </tr>
  <tr>
    <td>Some content</td>
    <td>Some content</td>
    <td>Some content</td>
    <td>Some content</td>
    <td>Some content</td>
    <td class="last">Some content</td>
  </tr>
</table>

答案 3 :(得分:1)

更改您的代码

$('tr').each(function(){
if($('td.last').length > 0  {       
    $(this).addClass('someclass');
}
});

$('tr').each(function() {
   if ($(this).find("td.last").text().length > 0) {
     $(this).addClass('someclass');
   }
});

您需要使用$(this).find("td.last").text()代替$('td.last')

  

JSfiddle