jQuery选择器 - 选择所有id不等于某些值的span标签

4
我想选择所有没有id等于x的HTML <span> 元素并将它们隐藏。这个有可能吗?我认为你必须使用:not选择器,但是我无法理解:

$('span:not(#x)').attr('style', "display: none;");

有什么想法吗?谢谢 :).


1
看起来您忘记了一个 )。这样行吗?$('span:not(#x)').attr('style', "display: none;"); - Filip
作为一个方便的小提示,如果你只是想隐藏元素,请使用 $('span:not(#x)').hide()。因为将样式属性设置为 display: none; 会替换掉所有现有的内联样式,而 hide() 只会添加 display: none;。要显示元素,只需调用 .show() 即可,它只会移除 display: none; 样式。 - drovani
4个回答

13

你只是忘记了一个)。

我做了一个示例来展示。 http://jsfiddle.net/3U8tD/

$('span:not(#x)').attr('style', "display: none;");

谢谢你救了我的一天... :) - Ashutosh Ranjan

4
$('span[ID!="x"]').attr('style', "display: none;");

将所有没有id为x的元素的style属性设置为none。

希望这能帮到你


1
应该是$('span[ID!="x"]').attr('style', "display: none;"); - Filip

3
您需要的内容至少有三种方法可以实现。
$('span:not(#x)').attr('style', "display: none;");
$('span[id!="x"]').attr('style', "display: none;");
$('span').filter(':not(#x)').attr('style', "display: none;");

最有效的方法是 $('span[id!="x"]').attr('style', "display: none;");
参见http://jsfiddle.net/xpAeK/

jquery文档现在说:使用.not()方法会比将复杂选择器或变量传递给:not()选择器过滤器更容易阅读。在大多数情况下,这是一个更好的选择。 - Patrick M

1
尝试这个。
$('span[id!="x"]').attr('style', "display: none;");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接