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().leftまたはを使用することもできます$(this).position().left..

于 2013-04-08T04:45:08.337 に答える