2012-11-08 56 views
0

如何确定文本标签与单击的元素匹配的元素索引号?滚动到元素

我有一个列表:

<ul> 
    <li data-cont="item one">this is one</li> 
    <li data-cont="item 2">this is second</li> 
    <li data-cont="one more">this is another one</li> 
</ul> 

... 

<div>item one</div> 

<div>item 2</div> 

<div>one more</div> 

当LIS的一个被点击我的屏幕需要向下滚动到以后在页面上匹配的DIV之一。

$('#li').click(function(){ 
    var scrollNow = $(this).attr('data-cont'); 
    $('html, body').animate({ 
     scrollTop: $( 

     // here I need to scroll down to the item by index... 

     ).offset().top 
    }, 500); 
}); 
+0

可能重复http://stackoverflow.com/questions/6677035/jquery-scroll-到元件) –

回答

1

获取div的指标很简单:

var index = $('div').filter(function(){ 
    return $(this).text().trim()==scrollNow} 
).index(); 

(我不使用:contains,因为它可以匹配太多的div)

但我不明白你为什么要这个指数。

如果要滚动到div,您需要做的仅仅

var div = $('div').filter(function(){ 
    return $(this).text().trim()==scrollNow} 
); 
$('html, body').animate({ 
    scrollTop: div.offset().top 
}, 500); 
[jQuery的滚动到元素(的