すべての要素を別の要素の右側に取得する方法

私はいくつかの絶対配置要素を持っています。現在の要素の右にある位置を持つすべての要素を取得することは可能ですか?

はいの場合、これを行う方法は?

2
あなたは .position()でこれを行うことができます: api.jquery.com/position.offset()api.jquery.com/オフセット
追加された 著者 m90,

2 答え

I've just written a plugin which implements this feature. Fiddle: http://jsfiddle.net/FJ5Cp/1/

関数ロジックは以下のようになります。

  1. 現在の要素の左位置とオフセット幅を取得します。これらを一緒に追加して、右の枠線を取得します。
  2. 各要素の左の位置と幅のオフセットを取得し、これらを追加して右の境界線を取得します。この値と1との値を比較してください。

使用法と機能:

// Basic usage
var allRightElements = $("element").rightOfCurrent();
// Only select ___ elements which are located right of the current element
var allRightElementsFilter = $("element").rightOfCurrent("___");
// Only select ___ elements, which are located right of the current element,
//   which are childs of ####
var allRightFilterInsideSomething = $("element").rightOfCurrent("___", "###");

(function($){
    $.fn.rightOfCurrent = function(selector, context){
        elem = this.eq(0);
        selector = selector || '*';
        context = context || null;
        var currentRight = elem.offset().left + elem.width();
        return $(selector, context).filter(function(){
           var $this = $(this);
           if ($this.css('position') == 'absolute'){
               return $this.offset().left + $this.width() > currentRight;
           }
           return false;
        });
    }
})(jQuery);
2
追加された
+1ほとんど同じプラグインを書き終わっていました:)
追加された 著者 James Allardice,
うーん、何か間違っている。ロブ・W、スカイプはありますか?
追加された 著者 Mirgorod,
追加された 著者 Mirgorod,
また、フィドルを追加しました: jsfiddle.net/FJ5Cp
追加された 著者 Rob W,
@Mirgorodいいえ、 chat.stackoverflow.com でチャットを開始できます。
追加された 著者 Rob W,

各要素の .offset()。left を現在の要素の leftと比較して .filter()を使用します。

var l = currentElement.offset().left;
var righterElements = positionedElements.filter(function(){
    return $(this).offset().left > l;
});
0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript