使用位置top大于指定的类myClass在html文档中查找第一个元素的最佳方法是什么
答案 0 :(得分:4)
根据.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;
}
}
答案 1 :(得分: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
元素,只返回第一个元素并停止。