0

位置が指定されたよりも大きい myClass クラスを持つ html ドキュメントの最初の要素を見つける最良の方法は何ですか?

4

2 に答える 2

4

topに.myClass基づいて要素をフィルタリングし、コレクションの最初の要素を取得します。position

var elem = $('.myClass').filter(function() {
    return $(this).position().top > 200;
}).first();

これにより、200pxを超える要素を含む内部の上部からの距離を持つ最初の要素が取得されます。ドキュメントに対する相対的な位置を取得するには、代わりにoffset()を使用できます。

パフォーマンスが問題になる場合は、これが最速だと思います。

var elems = document.getElementsByClassName('myClass'), elem;
for (var i=0;i<elems.length;i++) {
    if (parseInt(elems[i].style.top, 10)>200) {
        elem=elems[i];
        break;
    }
}
于 2012-09-30T14:23:25.687 に答える
1

間違った(最初の答え):

var $elm = jQuery.each($('.myClass'), function() {
    if ($(this).attr('top') > x) return $(this); 
});

OK

var $elm;
jQuery.each($('.myClass'), function() {
    if ($(this).attr('top') > x) {
        $elm = $(this);
        return false;
    }
});

このソリューションは、すべての要素を解析するのではなく.myClass、最初の要素を返し、停止するだけです。

于 2012-09-30T14:24:16.993 に答える