如何通过其偏移量找到DOM元素id /值

时间:2015-03-01 11:14:55

标签: javascript jquery angularjs

我希望通过其偏移量找到DOM元素id /值。可能是图片准确解释。我有一个指定价值范围的div。和更改值但按范围div的按钮是固定的。现在我想在按钮事件后找到范围值。

enter image description here

this my html code. 

 <div ng-app='myApp' ng-controller="Slider" id="slider">
   <li class="year ruler" ng-attr-id="{{y.year}}" ng-repeat="y in years"    style="top: {{y.top}}px">{{y.year}}<label class="index"> -</label></li>
 <div id="ranges" class="ranges"></div>
<div class="panel">
    <button ng-click="up()">up</button>
    <button ng-click="down()">down</button><br>
    <button ng-click="zoomOut()">+</button>
    <button ng-click="zoomIn()">-</button>
</div>

我使用此代码查找值但警告未定义

var dom= $(document.body).find('[offsetTop = '+80+']');
    alert($(dom).attr('id')); 

1 个答案:

答案 0 :(得分:4)

您可以使用jQuery的过滤功能根据偏移

过滤元素
function getElementByTopOffset(selector, offset){
    return $(selector).filter(function( index, elem) {
       return $(elem).offset().top == offset;
    });
}

此外,如果你想在完全香草中做这里可能是一个解决方案:

function getElementByTopOffset(selector, offset){
    return [].filter.call(document.querySelectorAll(selector), function(elem) {
          return elem.offsetTop == offset
    });
}