想了解一下这段屏蔽下拉菜单多个选项的代码还能在简化一些吗?

2022 年 11 月 11 日
 SkyRing
<script type="text/javascript"> var op = document.getElementById("wpas_ticket_type"); for (var i = 0; i < op.length; i++) { if (op[i].value.toLowerCase() == "4338") { op[i].disabled = true; } } var op = document.getElementById("wpas_ticket_type"); for (var i = 0; i < op.length; i++) { if (op[i].value.toLowerCase() == "4657") { op[i].disabled = true; } } </script>
2724 次点击
所在节点    JavaScript
8 条回复
westoy
2022 年 11 月 11 日
[ ...document.querySelectorAll('#wpas_ticket_type') ].forEach(e=>e.disabeld = ["4338", "4657"].includes(e.value.toLowerCase()) || e.disabled)

不过 getElementById 会产生数组?
ragnaroks
2022 年 11 月 11 日
楼上是正解,select 的 children ( option 元素数组)不能被直接替换,不然可以用 filter 一句话实现。
SkyRing
2022 年 11 月 11 日
@westoy 表示还是用不来诶,只会换换数字的程度...
Leegod
2022 年 11 月 11 日
@SkyRing 得多看 w3school 或者 MDN 之类的。一楼代码用到的知识点有:Array.forEach();箭头函数; Array.includes();逻辑运算符接函数
Leegod
2022 年 11 月 11 日
@Leegod emmm...第四点叫“条件运算符的使用”比较适合
SkyRing
2022 年 11 月 12 日
https://jsfiddle.net/ban5cv2f/#&togetherjs=0q1QI9ssV7
现在又遇到新问题了,不知道怎么判断查到了 id 可以打开,没查到就关闭选项这样子的,之前那个缩短的问题都还没搞定,害~
SkyRing
2022 年 11 月 12 日
innerHTML 似乎能用这个的话就简单多了,但是 WordPress 又用不了,其他的语音改起来难度更高了,完全懵逼了~
SkyRing
2022 年 11 月 12 日
总算是搞明白了,还是谢谢大家了,虽然上面的知识点似乎还是没搞懂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/894467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX