如何在TD中添加一个没有文本的类?

时间:2014-02-09 10:22:24

标签: javascript jquery html css

我正在尝试向TD中添加一个不包含任何文本的类,以便我可以使用Jquery将它们全部删除。这是HTML:

<!DOCTYPE html>
<html>

<head>
<title></title>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="myjavascript.js" type="text/javascript"></script>

<link rel="stylesheet" type="text/css" href="mycss.css">

</head>

<body>



<table class="counter">


<tr>
<th colspan="2">Goalkeepers</th><th colspan="2">Defenders</th>
<th colspan="2">Midfielders</th><th colspan="2">Forwards</th>
</tr>

<tr>
<td>1 Wojciech Szczesny<td>0</td></td>
<td>3 Bacary Sagna<td>0</td></td>
<td>7 Tomas Rosicky<td>0</td></td>
<td>9 Lukas Podolski<td>0</td></td>
</tr>

<tr>
<td>13 Emiliano Viviano<td>0</td></td>
<td>6 Laurent Koscielny<td>0</td></td>
<td>8 Mikel Arteta<td>0</td></td>
<td>12 Olivier Giroud<td>0</td></td>
</tr>

<tr>
<td>21 Lukasz Fabianski<td>0</td></td>
<td>4 Per Mertesacker<td>0</td></td>
<td>10 Jack Wilshere<td>0</td></td>
<td>14 Theo Walcott<td>0</td></td>
</tr>

<tr>
<td><td>0</td></td>
<td>5 Thomas Vermaelen<td>0</td></td>
<td>16 Aaron Ramsey<td>0</td></td>
<td>15 Alex Oxlade-Chamberlain<td>0</td></td>
</tr>

<tr>
<td><td>0</td></td>
<td>28 Kieran Gibbs<td>0</td></td>
<td>11 Mesut Ozil<td>0</td></td>
<td>22 Yaya Sanogo<td>0</td></td>
</tr>

<tr>
<td><td>0</td></td>
<td>17 Nacho Monreal<td>0</td></td>
<td>20 Mathieu Flamini<td>0</td></td>
<td>23 Nicklas Bendtner<td>0</td></td>
</tr>

<tr>
<td><td>0</td></td>
<td>25 Carl Jenkinson<td>0</td></td>
<td>24 Abou Diaby<td>0</td></td>
<td>31 Ryo Miyaichi<td>0</td></td>
</tr>

<tr>

<td><td>0</td></td>
<td><td>0</td></td>
<td>58 Gedion Zelalem<td>0</td></td>
<td>44 Serge Gnabry<td>0</td></td>
</tr>



<tr>
<td><td>0</td></td>
<td><td>0</td></td>
<td>29 Kim Kallstrom<td>0</td></td>
<td><td>0</td></td>
</tr>


<tr>
<td><td>0</td></td>
<td><td>0</td></td>
<td>19 Santi Cazorla<td>0</td></td>
<td><td>0</td></td>
</tr>

</table>







</body>
</html>

以下是将删除它们的Jquery:

 $("tr td:contains('')").each(function(){
  $(this).siblings('td.hideClass').css('visibility' , 'hidden');

 });

我尝试过使用:     $(tr td:contains('')“)。addClass(”hideClass“);

但那没用。任何帮助表示赞赏!

4 个答案:

答案 0 :(得分:6)

我想你需要尝试

jQuery(function($){
    $("tr td").filter(function () {
        return $.trim($(this).text()) == ''
    }).addClass('hideClass')
})

注意:在您的示例中,第一组td未正确关闭 - <td><td>0</td></td>应为<td></td><td>0</td>

答案 1 :(得分:4)

使用:

$("tr td").each(function(){
  if($(this).html()===""){
   //add class using $(this).addClass('classname');
 }
});

答案 2 :(得分:4)

您还可以使用:empty选择器:

$("td:empty").addClass('hideClass')
  

:empty Selector

     

描述:选择所有没有子元素的元素(包括文本节点)。

JSFIDDLE

答案 3 :(得分:0)

你似乎真的想要隐藏所有包含'0'的TD,而不是所有空的TD。 如果你想隐藏所有空元素,@IonicăBizău的答案很好(使用empty();)。 如果您正在寻找特定字符,您仍然可以使用包含,但您必须对后代非常具体。

这是一个小提琴:http://jsfiddle.net/sickdesigner/5pMcJ/