我正在尝试选择与给定属性ID不匹配的元素。基于以下简化示例,为什么$(“td [groupId!= 1]”)返回甚至没有groupId属性的元素?是否有另一种方法可以选择具有groupId的元素,其中值不是1?
<table border="1">
<tr>
<td>Group 1</td>
<td groupId="1">1 - 1</td>
<td groupId="1">1 - 2</td>
<td groupId="1">1 - 3</td>
<td>2</td>
<td groupId="2">2 - 1</td>
<td>3</td>
<td groupId="3">3 - 1</td>
<td>Total</td>
</tr>
<tr>
<td>1</td>
<td groupId="1">1</td>
<td groupId="1">1</td>
<td groupId="1">1</td>
<td>2</td>
<td groupId="2">2</td>
<td>3</td>
<td groupId="3">3</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td groupId="1">1</td>
<td groupId="1">1</td>
<td groupId="1">1</td>
<td>2</td>
<td groupId="2">2</td>
<td>3</td>
<td groupId="3">3</td>
<td>0</td>
</tr>
</table>
答案 0 :(得分:4)
答案 1 :(得分:3)
您可以执行以下操作,首先使用groupId!= 1选择所有td,然后选择具有从该jQuery集指定的groupId的那些:
$('td[groupId!= 1]').filter('[groupId]');
恕我直言这是完全逻辑,没有groupId的td有一个不会标记为1的groupId,因此被添加到结果集中。或者把它放在代码中:
var x = {};
typeof x.foo === 'undefined'; //true
x.foo !== 1; //true
答案 2 :(得分:3)
尝试$("td[groupId][groupId != 1]")
这将选择所有具有groupId的td,然后选择该组中没有值1
的所有td。
PS。这是not运算符的documented behaviour。