多个下拉列表在javascript中相互关联

多个下拉列表在javascript中相互关联,javascript,html,Javascript,Html,现在我有三个下拉菜单。页面加载时仅显示第一个下拉菜单。选择该菜单中的选项后,将显示第二个菜单。我试着对第二个和第三个菜单做同样的操作,但它不起作用。下面是我的HTML和JS代码,我做错了什么 函数选择(){ if(document.getElementById('filter1')。值=='genre'){ document.getElementById('items').style.display='block'; document.getElementById('items2')。styl

现在我有三个下拉菜单。页面加载时仅显示第一个下拉菜单。选择该菜单中的选项后,将显示第二个菜单。我试着对第二个和第三个菜单做同样的操作,但它不起作用。下面是我的HTML和JS代码,我做错了什么

函数选择(){
if(document.getElementById('filter1')。值=='genre'){
document.getElementById('items').style.display='block';
document.getElementById('items2')。style.display='none';
document.getElementById('items3')。style.display='none';
document.getElementById('items4')。style.display='none';
}else if(document.getElementById('filter1')。值='year'){
document.getElementById('items').style.display='none';
document.getElementById('items2')。style.display='block';
document.getElementById('items3')。style.display='none';
document.getElementById('items4')。style.display='none';
}else if(document.getElementById('filter1')。value=='director'){
document.getElementById('items').style.display='none';
document.getElementById('items2')。style.display='none';
document.getElementById('items3').style.display='block';
document.getElementById('items4')。style.display='none';
}else if(document.getElementById('filter1')。value=='actor'){
document.getElementById('items').style.display='none';
document.getElementById('items2')。style.display='none';
document.getElementById('items3')。style.display='none';
document.getElementById('items4')。style.display='block';
}否则{
document.getElementById('items').style.display='none';
document.getElementById('items2')。style.display='none';
document.getElementById('items3')。style.display='none';
document.getElementById('items4')。style.display='none';
}
}
函数检查(){
if(document.getElementById('items').style.display=='block'){
document.getElementById('filter').style.display='block';
}
}

过滤器1
体裁
年
导演姓名
演员名
过滤器2
年
导演姓名
演员名
过滤器2
体裁
导演姓名
演员名
过滤器2
体裁
年
演员名
过滤器2
体裁
年
导演姓名
过滤器3
导演姓名
演员名

您确定这不起作用吗?我注意到您在#items、#items2、#items3和#items4上使用标签“filter 2”作为默认选项,这可能会让人混淆

我用这个试过了,似乎很管用

所做的唯一修改是:

  • 我添加了一些日志
  • 我使用了
    window.choose=函数choose(){…}
    。但是这不应该是一个问题,因为choose函数应该已经附加到窗口对象

只有一个事件绑定到第一个下拉列表:

没有绑定到其他选择的事件


因此,您还需要在第二个下拉列表中添加相同的功能,以使其正常工作。如前所述,代码在逻辑上没有问题:第一个下拉列表更改后显示第二个下拉列表中的一个,其他下拉列表更改后不执行任何操作。

定义“不工作”。它在何处/如何具体失败?当你调试这个时,哪里出了问题?发生了什么以及您希望发生什么?没有绑定到其他3个选项的单击事件。另一个建议:如果您将ids项、项2、项3、项4替换为dropdown_流派、dropdown_year、dropdown_director和dropdown_流派,则可以完全删除if/else块,因为
document.getElementById的值('filter1')。value
将为您提供要显示的下拉列表的id,而不是分别检查每个值。实际上,我有一个疑问,您是否只需要显示两个下拉列表,还是每次填充前一个下拉列表时都要显示新的下拉列表?