1

我有一个看起来像这样的表:

<table>
 <tr>
  <td data-col="firstname">Robert</td>
  <td data-col="middlename">E</td>
  <td data-col="lastname">McIntosh</td>
  <td data-col="email">example@gmail.com</td>
  <td data-col="title" data-id="123456">Programmer</td>
 </tr>
 <tr>
  <td data-col="firstname">John</td>
  <td data-col="middlename">M</td>
  <td data-col="lastname">Doe</td>
  <td data-col="email">j.m.doe@gmail.com</td>
  <td data-col="title" data-id="456789">IT Manager</td>
 </tr>
 <tr>
  <td data-col="firstname">Sue</td>
  <td data-col="middlename">L</td>
  <td data-col="lastname">Merser</td>
  <td data-col="email">s.l.merser@gmail.com</td>
  <td data-col="title" data-id="789123">Hates Her Job</td>
 </tr>
</table>

我想为title_hide所有td不包含数据属性 id 的元素添加一个标记为123456

我正在尝试的Javascript:

$('table tr td:not([data-id="123456"])').closest('tr').addClass('title_hide');
4

4 回答 4

7

使用:not()选择器:

$('td:not([data-id="123456"])').addClass('title_hide');

更新:根据您的更新,您似乎正在尝试将类添加到<tr>元素中,而元素内部没有<td data-id="123456">。在这种情况下,您可以使用以下方法:

$('tr:not(:has(td[data-id="123456"]))').addClass('title_hide');

演示:http: //jsfiddle.net/RFwJg/

于 2013-10-15T14:16:23.540 回答
3

你可以做:

$("table tr td:not([data-id=123456])").addClass("title_hide");
于 2013-10-15T14:16:13.770 回答
0

试试不()

 $("td:not('[data-col]')").addClass('title_hide');
于 2013-10-15T14:17:35.127 回答
0
<script type="text/javascript">
    jQuery(document).ready(function(){
        jQuery('td').not('td[data-id="123456"]').addClass('title_hide');
    });
</script>
于 2013-10-15T14:18:45.700 回答