1

我正在尝试做类似的事情:

var $list = new Array();
$selector.each(function(){
  if ( $(this).has(css("position")) ){
    $list.push($(this));
  }
});

看起来我的做法并不奏效。我看到一个看起来像这样的例子:

var bg = ('element').parents().filter(function() {
  return $(this).css('background').length > 0;
}).eq(0)

但我不确定这是否是我应该做的,或者是否有另一种方法。

4

1 回答 1

3

你很接近了......但试试这个..

var $list = new Array();
$selector.each(function(){
  if ( $(this).css("position") ){
    $list.push($(this));
  }
});

更好的是检测位置的类型,即:

var $list = new Array();
$selector.each(function(){
  if ( $(this).css("position") == "absolute" ){
    $list.push($(this));
  }
});

编辑

根据您上面的评论,您可能需要检查除特定位置 LEFT TOP 以外的其他内容,因为默认情况下这些内容将显示为 0px,因此可能需要检查值而不是实际属性。

你也可以使用$(this).offset().leftor $(this).position().left..

于 2013-04-08T04:45:08.337 回答