JS中select修改 原生动态添加options并选中

在项目中,解决因服务端返回数据延迟导致的Select下拉框加载问题。通过增加搜索功能并限制返回数据量,优化用户体验。同时,探讨了在修改功能中保持代码简洁性和避免资源浪费的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中又遇到一个小问题,测试完了都没发现~~ (醉)
就是在账户添加时有两项超长的select下拉框的option列表是从服务端获取的,修改时的策略是直接请求数据构造成两个option赋值给两个select,然后给select设置value选中即可,而且这两项select为不可修改项(置灰项)。没毛病…一只是okay的,直到有个测试er说一次返回这么多东西,请求响应有延迟,建议把下拉改为可搜索的。。。pm说改为每次响应只需要关键字前20条即可,问题来了。。。。。。。。前端只加了搜索功能,并没针对修改功能做修改,刚上线有人试用了一下,说修改每次都带不出那两项select,但是数据有响应,
我用了一遍确定是select的的value没有可以匹配的text,因为请求接口时服务端默认给了钱二十条数据,无匹配内容~ 测试之所以没测出来,是因为测试数据太少了,每次都会匹配的数据响应回来。
怎么搞,直接把修改接口获取数据的text当做关键字去请求接口么? 没有,不是没想过这种方法,某种角度来看这种其实更加省时省力,但是避免代码冗余和以后的潜在问题,其次,该项仅作为展示项,又拿到了可展示数据,就不用浪费资源再次请求了,所以就没考虑这种方法,而是选择用name, value构造一个option,然后选中置灰。。。

var selection = document.getElementById("Dot")
selection.options.add(new Option(name, value)); 
selection.children[0].selected=true;

当然这个是替别人紧急修复的一个js小问题,老项目没用啥ui库,全是原生写的,新的项目新的控件库有更好的选择,比如直接赋值option value mvvm双向即可选中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kirinlau

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值