【发布时间】:2021-04-22 14:15:29
【问题描述】:
如何在 VueJS 中隐藏动态生成的 div 元素?我有一个聊天机器人应用程序,消息在一个名为messages 的道具中发送,这个消息数组被迭代,它的信息以多个 Div 的形式显示在屏幕上。生成的 Div 之一用于衡量他们是否喜欢响应。理想情况下,一旦用户选择了“是”或“否”,那么特定的响应选项框就会消失,但是到目前为止我尝试过的所有解决方案都会导致所有响应选项框都消失。
我尝试在 div 上添加 !isHidden 属性,然后在单击任一按钮时切换它。但是当我这样做时,每个响应选项框都会消失,也不会出现新的选项框。
我还分配了一个动态 ID,目的是使用它隐藏特定的 div,这就是我使用 Vanilla JavaScript 解决这个问题的方法。但是我一直在努力通过他们的 ID 来定位特定的 Div,因为我在控制台中一直为空。
我正在尝试做的事情可能吗?
我已经包含了 UI 的屏幕截图以及代码(我已经突出显示了我希望在单击每条消息后消失的特定代码段)。
最后一张图片显示了我想要隐藏的确切 div,例如如果我想在点击 messageResponseSatisfactionOption3 和 messageResponseSatisfactionOption6 后隐藏它们。很抱歉遮挡了很多图片,这是针对大学项目的。
UI image with element console open
提前致谢:)
【问题讨论】:
-
能否请您添加一段代码,说明您的迭代方式和内容
-
@GirlCodes 我添加了另一张图片,显示了我想在点击按钮时隐藏的确切 div:'messageResponseSatisfactionOption3' 和 'messageResponseSatisfactionOption6',第一张图片也显示了 'messages' 道具被迭代。这是你要求的吗? :)
-
完全理解 v-if="message.isStatisfationResponseRequired" 并切换这个特定的布尔值不起作用?
-
@GirlCodes 感谢您的回复,不是 if 语句仅用于决定是否应显示响应选项,因为它仅显示在某些响应中。
-
这不是你想要做的吗?您希望显示或不显示响应吗?
标签: javascript vue.js