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

如何用单个函数实现多个带ID元素点击返回文档顶部?

实现单个函数让多个ID元素点击返回顶部

原代码问题分析

document.getElementById() 仅支持传入单个ID字符串,你传入的"top1, top 2, top3"是一个完整的字符串,不存在匹配这个ID的元素,所以获取到的是null,无法绑定点击事件。

解决方案

方案1:通过属性选择器匹配多个ID元素

直接选择所有ID以top开头的元素,遍历绑定同一个返回顶部函数:

// 选择所有ID以top开头的元素(匹配top1、top2、top3...)
const topElements = document.querySelectorAll('[id^="top"]');

// 定义通用返回顶部函数
function scrollToTop() {
  // 普通滚动到顶部
  window.scrollTo(0, 0);
  // 可选:平滑滚动效果
  // window.scrollTo({ top: 0, behavior: 'smooth' });
}

// 给每个元素绑定点击事件
topElements.forEach(element => {
  element.addEventListener('click', scrollToTop);
});

如果需要精准指定某几个ID,也可以直接列出:

const topElements = document.querySelectorAll('#top1, #top2, #top3');

方案2:统一类名(更推荐)

给所有需要触发返回顶部的盒子添加同一个类名(比如scroll-to-top),通过类选择器批量获取元素,后续新增盒子只需加类名即可,无需修改JS:

<!-- HTML部分:给盒子添加统一类名 -->
<div id="top1" class="scroll-to-top">盒子1</div>
<div id="top2" class="scroll-to-top">盒子2</div>
<div id="top3" class="scroll-to-top">盒子3</div>
// JS部分
const scrollElements = document.querySelectorAll('.scroll-to-top');

function scrollToTop() {
  window.scrollTo(0, 0);
}

scrollElements.forEach(el => el.addEventListener('click', scrollToTop));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 14:14:56