Jquery隐藏具有与特定条件不匹配的特定类名的元素

时间:2017-04-03 13:30:25

标签: javascript jquery css

我有一个页面,其中包含多个具有相同类名的元素。

其中一些正在重新定位,当我提交页面时,我想隐藏位于顶部的元素:0;

我一直在寻找一些建议,我尝试过这样的事情:

$('.myClass').not($('.myClass').css('top', '0')).fadeOut(300);

但显然这不起作用: - )

其他人对如何实现这个目标有所了解吗?

谢谢

3 个答案:

答案 0 :(得分:5)

您正在设置元素的顶部位置,而不是过滤集合。

您想使用filter()

$( '.myClass' )
  .filter(function() {
    return $(this).css('top') === "0px";
  }).fadeOut(300);

答案 1 :(得分:0)

没有选择器,但这可以通过循环元素并检查顶部position来实现。

像这样。

$.each($('.myClass'), function(i, el) {
  var position = $(el).position();

  if (position.top === 0) {
      $(el).hide();
  }
});

Here's a fiddle

答案 2 :(得分:0)

使用类循环遍历每个元素,然后检查其css属性:

$('.myClass').each(function(){
  if($(this).css('top')==='0'){
     $(this).fadeOut(300);
  }
});