0

什么是在 html 文档中查找第一个元素的最佳方法,其中类 myClass 的位置顶部大于指定

4

2 回答 2

4

.myClass根据top过滤元​​素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); 
});

好的

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

此解决方案不解析所有.myClass元素,只返回第一个元素并停止。

于 2012-09-30T14:24:16.993 回答