从两个选择列表中选择A + B时​​,在#Anchor上加载结果页面?

时间:2014-11-28 10:48:19

标签: javascript jquery

我有一个有产品页面的在线商店。该页面有两个选择框可供选择,并将根据这两个选项过滤结果。

如果我从选择框中选择标准A + B,则页面会过滤产品以显示具有该标准的产品。但是,当此事件发生时,页面会滚动到页面顶部。这在移动设备上尤其令人讨厌,因为选择框不在页面的顶部。

如何在选择时添加javascript事件以滚动到特定div(例如#ProductList)。

或者可能是一个onload事件,它将#ProductList添加到url的末尾。

我找到了根据所选id滚动到div id的示例。但是当我点击选择框时,我需要一些更简单的东西,它总是滚动到相同的div #ProductList。

This Example works for id selected but i need a general one that scrolls to one specific div id

var select = document.getElementById('test');

select.onchange = function(){
var id = this.getElementsByTagName('option')[this.selectedIndex].value,
    el = document.getElementById(id),
    top = el.offsetTop;
window.scrollTo(0,top);
};

非常感谢任何帮助!!!!

4 个答案:

答案 0 :(得分:0)

只需写下

var id = 'YOUR ID HERE',

而不是

var id = this.getElementsByTagName('option')[this.selectedIndex].value,

答案 1 :(得分:0)

我会做的是

$("#test").change(function(){
    var val=$(this).val();
    var divtext=""+$("#"+val+" p").html();// this is div content
});

答案 2 :(得分:0)

您可以使用URL片段跳转到所需的页面元素。请参阅下面的代码:

var select = document.getElementById('test');

select.onchange = function(){
    var id = this.getElementsByTagName('option')[this.selectedIndex].value;
    var link = window.location.href;

    // If URL already has a fragment, remove it
    if (link.indexOf('#') != -1)
        link = link.substring(0, link.indexOf('#'));

    // Add URL fragment with id of the div you want to jump to
    window.location.href = link + '#' + id;
};

答案 3 :(得分:0)

我已经明白了!

感谢不同观点的家伙们!真的帮我偶然发现了答案!

如果需要,您可以删除/存档此帖子。这是第一次在协议上不确定!

再次感谢