如何使用公共类获得大量跨度的偏移值

时间:2016-06-03 05:52:00

标签: javascript jquery html

我目前有大量的跨度都有一个共同的类(你可能从标题中猜到)。当我尝试:

$(".span-class").offset().top;

我正在尝试检查一个元素与所有跨距之间的冲突,而不创建超过10个唯一ID和.offset调用。但我只接受HTML中类的第一个元素的.offset().top值。

那么有没有办法检查所有这些元素的位置,而不需要额外的10行代码?提前谢谢!

3 个答案:

答案 0 :(得分:2)

var spanArr = [];
$("span.span-class").each(function () {
   spanArr.push($(this).offset().top);        
});

答案 1 :(得分:1)

以下是使用map代替each解决此问题的另一种方法。你的问题显然是地图的用例。

var offSetops = $(".span-class").map(function(){
  return $(this).offset().top;
}).get();



var offSetops = $(".span-class").map(function(){
  return $(this).offset().top;
}).get();
console.log(offSetops);

.span-class{
  display:block;
  height: 10px;
  margin: 2px;
  background-color: gray;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="span-class"></span>
<span class="span-class"></span>
<span class="span-class"></span>
<span class="span-class"></span>
<span class="span-class"></span>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

试试..

var offSetops = [];

$(".span-class").each(function(){
    var offsetTop = $(this).offset().top;
    offsetops.push(offsetTop);
})
console.log(offSetops);