V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
SkyRing
V2EX  ›  JavaScript

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

  •  
  •   SkyRing · 2022-11-11 14:03:20 +08:00 · 1787 次点击
    这是一个创建于 735 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <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>
    8 条回复    2022-11-12 10:29:53 +08:00
    westoy
        1
    westoy  
       2022-11-11 14:10:44 +08:00
    [ ...document.querySelectorAll('#wpas_ticket_type') ].forEach(e=>e.disabeld = ["4338", "4657"].includes(e.value.toLowerCase()) || e.disabled)

    不过 getElementById 会产生数组?
    ragnaroks
        2
    ragnaroks  
       2022-11-11 14:53:38 +08:00
    楼上是正解,select 的 children ( option 元素数组)不能被直接替换,不然可以用 filter 一句话实现。
    SkyRing
        3
    SkyRing  
    OP
       2022-11-11 15:15:31 +08:00
    @westoy 表示还是用不来诶,只会换换数字的程度...
    Leegod
        4
    Leegod  
       2022-11-11 16:48:47 +08:00
    @SkyRing 得多看 w3school 或者 MDN 之类的。一楼代码用到的知识点有:Array.forEach();箭头函数; Array.includes();逻辑运算符接函数
    Leegod
        5
    Leegod  
       2022-11-11 16:55:19 +08:00
    @Leegod emmm...第四点叫“条件运算符的使用”比较适合
    SkyRing
        6
    SkyRing  
    OP
       2022-11-12 07:33:55 +08:00
    https://jsfiddle.net/ban5cv2f/#&togetherjs=0q1QI9ssV7
    现在又遇到新问题了,不知道怎么判断查到了 id 可以打开,没查到就关闭选项这样子的,之前那个缩短的问题都还没搞定,害~
    SkyRing
        7
    SkyRing  
    OP
       2022-11-12 07:38:15 +08:00
    innerHTML 似乎能用这个的话就简单多了,但是 WordPress 又用不了,其他的语音改起来难度更高了,完全懵逼了~
    SkyRing
        8
    SkyRing  
    OP
       2022-11-12 10:29:53 +08:00
    总算是搞明白了,还是谢谢大家了,虽然上面的知识点似乎还是没搞懂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2630 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 04:26 · PVG 12:26 · LAX 20:26 · JFK 23:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.