当前位置: 首页 > 知识库问答 >
问题:

隐藏/显示具有动态ID的字段(NodeJS、Mongoose、Express、Javascript)

凌声
2023-03-14

我有一个forEach循环,它在单击餐厅图标时显示不同餐厅的菜单。餐厅图标和餐厅/菜单的数量是未知的,每个都是用动态ID创建的,例如menu-0、menu-1、menu-2等。

当一个餐厅图标被点击时,所有其他的都应该被隐藏。目前我有以下Javascript显示/隐藏菜单;虽然这是工作的,我正在努力使它更动态/更有效的方法,而不是静态列表,因为菜单的数量是未知的。

let menu0 = document.getElementById('menu-0');
let menuIcon1 = document.getElementById('menu-icon-1');
let menu1 = document.getElementById('menu-1');
let menuIcon2 = document.getElementById('menu-icon-2');
let menu2 = document.getElementById('menu-2');
let menuIcon3 = document.getElementById('menu-icon-3');
let menu3 = document.getElementById('menu-3');
let menuIcon4 = document.getElementById('menu-icon-4');
let menu4 = document.getElementById('menu-4');

$('#menu-icon-0').on('click', function(e) {
    if (menu0.style.display = 'none') {
        menu0.style.display = 'block';
        menuIcon0.style.border = '5px solid #2541B2';

        menuIcon1.style.border = 'none';
        menu1.style.display = 'none';
        menuIcon2.style.border = 'none';
        menu2.style.display = 'none';
        menuIcon3.style.border = 'none';
        menu3.style.display = 'none';
        menuIcon4.style.border = 'none';
        menu4.style.display = 'none';
    }
})

$('#menu-icon-1').on('click', function(e) {
    if (menu1.style.display = 'none') {
        menu1.style.display = 'block';
        menuIcon1.style.border = '5px solid #2541B2';
        
        menuIcon0.style.border = 'none';
        menu0.style.display = 'none';
        menuIcon2.style.border = 'none';
        menu2.style.display = 'none';
        menuIcon3.style.border = 'none';
        menu3.style.display = 'none';
        menuIcon4.style.border = 'none';
        menu4.style.display = 'none';
    }
})```

共有2个答案

丁翊歌
2023-03-14

您正在使用jquery,对吗?所以这一切都可以归结为

$('#menu-icon-0').on('click', function(e) {

  $('#menu-icon-0').toggle()
}
汪安宁
2023-03-14

根据我的经验,您必须添加自定义类到您的动态元素,然后您可以设置click在类名,并在click中搜索所有元素有这个类,使for循环和比较元素的id与点击的视图id如果不等于,您应该隐藏边界。

 类似资料:
  • 排除不显示字段 Model.findAll({ attributes: { exclude: ['baz'] } });

  • 本文向大家介绍JQuery DIV 动态隐藏和显示的方法,包括了JQuery DIV 动态隐藏和显示的方法的使用技巧和注意事项,需要的朋友参考一下 1. 如果在载入是隐藏: 2. 动态隐藏和显示: 以上代码之前,可能还要加上这句话: 使用jquery真的很方便,比如要控制div的显示与隐藏,一句话就搞定了,请看下面使用说明。 $("#id").toggle()切换元素的可见状态。如果元素是可见的,

  • 我试图从活动中隐藏/显示片段中的按钮,但它给了我以下异常。 android.view.ViewRootImpl$CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触摸其视图。 家庭活动 类别片段 代码太大,无法在此处发布。这就是为什么我只在发现问题的地方发布代码。 我能够获得新设计按钮实例。令我震惊的是,如果尝试玩按钮实例(可见/消失),它会给我上述异

  • 问题内容: 我试图根据我选择的字段之一的值显示和隐藏一些表单字段。我希望使用数组来保存每个选择值应显示的内容和不应该显示的内容,以免将我从庞大的switch语句中删除,但无法弄清楚该如何做。 我正在使用PHP和jQuery。任何帮助都会很棒。 问题答案: 尝试这样的事情: 然后在jQuery中:

  • 我正在开发包含2个片段的应用程序,我想根据需要显示隐藏。下面的代码有一个简单的例子来说明我的问题。这个简单的Fragmentactivity包含一个按钮和一个listfragment。 这个简单的例子完美无瑕。但我不满足于展示隐藏片段。如果删除布局。设置可见性(View.GONE);然后从代码中选择ft.hide(f);不会隐藏碎片。事实上,我们不是在隐藏片段,而是在隐藏容器。 我的问题是,这是一

  • 我在Spring MVC(4.1.1)中使用了Thymeleaf(Tymeleaf-Spring4-2.1.3),并有一个模型/命令对象,如下所示: Thymeleaf如何确定必须生成隐藏字段? 即使我将属性更改为 这里相同:没有隐藏字段。