You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AMP中通过tap事件隐藏指定class的所有div的实现方法

如何隐藏所有指定class的div元素

你原代码里的tap:box.hide是针对id为box的单个元素,要批量操作class为box的多个div,分两种场景处理:

普通HTML/JS场景

直接用JavaScript批量选中元素并修改样式,把按钮的事件改成调用自定义函数:

<button class="button" onclick="hideAllBoxes()">hide</button>

<div class="box">text</div>
<div class="box">text</div>

<script>
function hideAllBoxes() {
  // 选中所有class为box的元素
  const boxes = document.querySelectorAll('.box');
  // 遍历每个元素并隐藏
  boxes.forEach(box => {
    box.style.display = 'none';
    // 要是想保留元素占位,换成 box.style.visibility = 'hidden';
  });
}
</script>
  • document.querySelectorAll('.box')能获取到所有class匹配的元素
  • display: none会让元素完全消失不占空间,visibility: hidden则是隐藏但保留原有位置

AMP场景(适配你原代码的tap:语法)

如果是用AMP框架,可借助状态管理批量控制元素显示:

<button class="button" on="tap:AMP.setState({ hideBoxes: true })">hide</button>

<div class="box" [hidden]="hideBoxes">text</div>
<div class="box" [hidden]="hideBoxes">text</div>

点击按钮后设置hideBoxes状态为true,所有绑定了[hidden]="hideBoxes"的div都会自动隐藏。

内容的提问来源于stack exchange,提问作者Denny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:05:47