讲师中心 微信公众号
AI工具推荐 视频效率加速

如何通过点击将列表项移动到顶部

夜婷姑娘_7175

夜婷姑娘_7175

发布时间:2025-12-29 14:42:30

|

244人浏览过

|

来源于php中文网

原创

如何通过点击将列表项移动到顶部

本文介绍如何使用原生 javascript 实现点击任意 `

  • ` 元素后,将其动态移至父 `
      ` 列表的最顶端,无需依赖框架,代码简洁高效且兼容现代浏览器。

      要实现“点击列表项即置顶”的交互效果,核心在于利用 DOM 的 prepend() 方法——该方法可将指定节点插入到父容器的起始位置,并自动从原位置移除(DOM 节点具有唯一性,重复添加会自动迁移)。

      以下为完整、可直接运行的解决方案:

      <ul>
        <li>Color</li>
        <li>Size</li>
        <li>Price</li>
      </ul>
      
      <script>
        const ul = document.querySelector("ul");
        const listItems = ul.querySelectorAll("li");
      
        function moveToTop() {
          ul.prepend(this); // this 指向被点击的 li 元素
        }
      
        listItems.forEach(item => {
          item.addEventListener("click", moveToTop);
        });
      </script>

      ✅ 关键说明:

      Java Maven Code Review
      Java Maven Code Review

      审查Java Maven项目(ZIP压缩包或GitLab仓库URL),检查代码规范、命名、模块边界、可维护性问题以及重复代码。

      下载
      • ul.prepend(this) 是实现置顶的核心:它将当前点击的 <li> 插入 <ul> 的第一个子节点位置,语义清晰、性能优异;
      • 使用 querySelectorAll("li") 而非 querySelector("li"),后者仅返回首个匹配元素(返回单个节点,无 length 属性),原问题中 listItems.length 会报错;
      • 避免在循环中使用 var 和闭包陷阱(如原代码中的 $i 变量名错误及未声明的 i 引用),forEach 提供安全、直观的遍历方式;
      • 事件监听器绑定在每个 <li> 上,响应及时,无需事件委托(除非列表动态增删频繁,此时可升级为委托方案)。

      ⚠️ 注意事项:

      • 若列表项包含复杂结构(如内嵌按钮、表单控件),建议为 <li> 设置 cursor: pointer 并添加 user-select: none 提升交互反馈;
      • 在旧版 Safari(<15.4)中 prepend() 支持良好,但若需支持 IE,则需降级使用 insertBefore(ul.firstChild) 方案;
      • 多次点击同一项不会导致重复或异常——prepend() 对已存在子节点的操作是幂等的(位置已为首位时无实际变动)。

      此方法轻量、可维护性强,是前端日常交互开发中的典型 DOM 操作范例。

  • 热门AI工具

    更多
    DeepSeek

    DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

    豆包大模型

    豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

    Loomy
    Loomy Hot

    一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

    Seko
    Seko Hot

    一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

    AionClaw
    AionClaw Hot

    AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

    讯飞智作

    讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

    Laper
    Laper Hot

    Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

    火山引擎

    火山引擎是一款面向企业的云计算与AI服务平台。

    WorkBuddy

    一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

    相关专题

    更多
    php中foreach用法
    php中foreach用法

    本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

    718

    2025.12.04

    length函数用法
    length函数用法

    length函数用于返回指定字符串的字符数或字节数。可以用于计算字符串的长度,以便在查询和处理字符串数据时进行操作和判断。 需要注意的是length函数计算的是字符串的字符数,而不是字节数。对于多字节字符集,一个字符可能由多个字节组成。因此,length函数在计算字符串长度时会将多字节字符作为一个字符来计算。更多关于length函数的用法,大家可以阅读本专题下面的文章。

    1747

    2023.09.19

    go语言闭包相关教程大全
    go语言闭包相关教程大全

    本专题整合了go语言闭包相关数据,阅读专题下面的文章了解更多相关内容。

    3873

    2025.07.29

    DOM是什么意思
    DOM是什么意思

    dom的英文全称是documentobjectmodel,表示文件对象模型,是w3c组织推荐的处理可扩展置标语言的标准编程接口;dom是html文档的内存中对象表示,它提供了使用javascript与网页交互的方式。想了解更多的相关内容,可以阅读本专题下面的文章。

    6481

    2024.08.14

    LLVM自定义Pass怎么写
    LLVM自定义Pass怎么写

    本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

    80

    2026.09.30

    LLVM RISC-V参数配置教程
    LLVM RISC-V参数配置教程

    本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

    80

    2026.09.30

    LLVM IR中间表示入门指南
    LLVM IR中间表示入门指南

    本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

    80

    2026.09.30

    PDF转图片方法
    PDF转图片方法

    需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

    60

    2026.09.30

    PixTV AI视频生成与无限画布创作
    PixTV AI视频生成与无限画布创作

    PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

    60

    2026.09.29

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    WebStorm 官方调试文档
    WebStorm 官方调试文档

    共0课时 | 0人学习

    React 教程
    React 教程

    共58课时 | 12.1万人学习

    TypeScript 教程
    TypeScript 教程

    共19课时 | 6.6万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn