Javascript 当从两个选择列表中选择A+B时,是否在锚点加载结果页面?

Javascript 当从两个选择列表中选择A+B时,是否在锚点加载结果页面?,javascript,jquery,Javascript,Jquery,我有一个网上商店,有一个产品页面。该页面有两个选择框可供选择,并将根据这两个选项筛选结果 如果我从选择框中选择条件A+B,则页面将筛选产品以显示符合该条件的产品。但是,当发生此事件时,页面将滚动到页面顶部。这在手机上尤其烦人,因为选择框不在页面顶部 在进行选择时,如何添加javascript事件以滚动到特定div,例如ProductList 或者可能是将ProductList添加到url末尾的onload事件 我找到了基于所选id滚动到div id的示例。但是我需要一些更简单的东西,当点击选择框

我有一个网上商店,有一个产品页面。该页面有两个选择框可供选择,并将根据这两个选项筛选结果

如果我从选择框中选择条件A+B,则页面将筛选产品以显示符合该条件的产品。但是,当发生此事件时,页面将滚动到页面顶部。这在手机上尤其烦人,因为选择框不在页面顶部

在进行选择时,如何添加javascript事件以滚动到特定div,例如ProductList

或者可能是将ProductList添加到url末尾的onload事件

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

非常感谢您的帮助

弗兰克

写吧

var id = 'YOUR ID HERE',
而不是

var id = this.getElementsByTagName('option')[this.selectedIndex].value,
我要做的是

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

您可以使用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;
};
我已经弄明白了

谢谢大家的不同观点!真的帮我找到了答案

如果需要,您可以删除/存档此帖子。第一次来这里,所以不确定协议

再次感谢


弗兰克

感谢您的快速回复!这对于我链接的示例非常有效。然而,在我的实时站点上实现它并不顺利。我试图编辑的代码包含很多php和mage magento特定的代码。我有没有可能用整页代码与您联系,看看您是否能提供帮助?我担心这些评论太多了,这是可能的,但是读了上面的评论,我想你已经成功了?是的,我最终成功了!再次感谢你们,有什么办法可以奖励我不止一个答案吗?那很可能会奏效!该脚本需要添加到哪里?对不起,我对JavaScription很陌生,我不知道你的意思。只需使用此代码代替您在问题中使用的Javascript代码片段。检查jsfiddle jsfiddle.net/naveedaa/1kckq4wc/例如,链接的示例是我试图实现的一个非常基本的简化版本。玩弄我的代码,并根据您的建议使其工作!谢谢
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;
};