滚动到元素

时间:2012-11-08 20:17:49

标签: jquery

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

我有一个清单:

<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>

当点击其中一个LI时,我的屏幕需要向下滚动到页面后面的一个匹配的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);
});

1 个答案:

答案 0 :(得分: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);