我有以下行正常工作
$("#myDiv img:not(:eq(0))").hide();
我想写一个类似的行,但使用“this”。所以:
$(this":not(:eq(0))").hide();
但这不起作用......任何出错的想法?
答案 0 :(得分:6)
尝试.not(selector)
http://api.jquery.com/not/
答案 1 :(得分:5)
其他答案遗忘了一个重点 - this
最有可能在某些事件中回调,并且可能是单个元素,因此它始终选择中的第一个元素(:eq(0)
)。
因此,以下每个等效代码段永远不会隐藏任何内容:
$(this).not(':eq(0)').hide();
$(this).filter(':gt(0)').hide();
$(this).slice(1).hide();
我只是猜测OP的意图,但代码最有可能是:
if ($(this).index('#myDiv img') > 0) $(this).hide();
答案 2 :(得分:3)
这样的事情应该有效:
$(this).not(":eq(0)").hide();
答案 3 :(得分:2)
您好像应该使用:gt()
选择器
描述:选择匹配集中索引大于索引的所有元素。
尝试:
$(this).find(":gt(0)").hide();
或:
$(":gt(0)", this).hide();
不是:not(:eq(0))
写作:gt(0)
的笨重方式吗?
答案 4 :(得分:0)
$($(this).selector + ":not(:eq(0))").hide();