跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
JavaScript大前端

Vue 中 Select 获取选中项索引的实战技巧

Vue 项目中处理下拉框选择时,除了依赖 v-model 绑定值,有时需要精确获取选中项的索引位置。通过监听 change 事件并结合 e.target.selectedIndex,可以直接拿到 DOM 层面的索引值。此外,优化数据结构设计,如将默认值设为数组首项引用,也能减少不必要的状态重置逻辑。

虚拟内存发布于 2020/3/7更新于 2026/4/251 浏览
Vue 中 Select 获取选中项索引的实战技巧

在 Vue 开发中,处理下拉框(Select)时,我们往往不仅关心选中的值(value),有时还需要知道它在列表中的具体位置(index)。虽然 v-model 能方便地绑定数据,但若要精准获取 DOM 层面的索引,监听原生事件依然是最直接的方式。

下面是一个基于 Vue 2 的示例,展示了如何通过 change 事件同时获取索引和值:

<div id="app">
    <select v-model="selectItem" @change="selectFn($event)">
        <!--选择项的 value 值默认选择项文本 可动态绑定选择项的 value 值 更改 v-model 指令绑定数据-->
        <option v-for="item in items" :value="item.id">{{item.name}}</option>
    </select>
    <div>{{selectItem}}</div>    <!--选择项的 value 值-->
</div>
<script>
    new Vue({
        el: '#app',
        data: {
            selectItem: '分类 1',
            items: [
                {id:11, name: '分类 1'},
                {id:22, name: '分类 2'},
                {id:33, name: '分类 3'}
            ]
        },
        methods: {
            selectFn(e) {
                console.log(e)
                console.log(e.target.selectedIndex) // 选择项的 index 索引
                console.log(e.target.value) // 选择项的 value
            }
        }
    })
</script>

这里的关键在于 e.target。当用户触发 change 事件时,DOM 对象会暴露出 selectedIndex 属性,这直接对应了 <option> 在列表中的物理位置。配合 v-model 绑定的 selectItem,你可以灵活地在业务逻辑中决定是依赖数据驱动还是事件驱动。

当然,如果业务允许,还有一种更简洁的思路。Select 组件的数据结构支持数组或对象,无需每次通过 onchange 事件重新赋值。默认值可以直接指向数组首项的引用,这样在初始化或重置时,状态管理会更自然,减少不必要的计算开销。根据实际场景选择合适的方式,能让代码既清晰又高效。

  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog

更多推荐文章

查看全部
  • 微信小程序中 @import 与 <include> 的区别及使用场景
  • 不改一行代码定位线上 Java 性能问题
  • 贝叶斯网络原理与代码实战
  • JavaScript Fetch API:如何正确克隆 Request 对象
  • Java IO 流体系核心梳理:字节流与字符流详解
  • Linux 常用命令速查手册
  • 特朗普若再次执政,对人工智能行业意味着什么
  • CSS 核心机制解析:层叠、继承与优先级实战
  • RPA 技术实战指南:从原理到落地
  • 罗马数字转整数:Python 算法实现
  • SQL PASS 西雅图参会:美国签证申请实战经验
  • DeepSeek R1 颠覆提示词工程?深度解析推理模型交互变革
  • 大模型心理理论能力评估:TMBENCH 基准测试
  • 大模型内在推理能力探索:无需提示的思考链解码
  • 程序员如何规避 35 岁职业危机
  • 2024 AI 行业复盘:从百模大战到头部竞速的变革
  • 使用本地大模型从发票文本中提取结构化信息
  • 7 个鲜为人知但实用的 Python 工具库
  • Halcon 基础面试题:图像数据类型与尺寸表示
  • Flutter 返回键监听实战:双击退出与跳转桌面处理

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online