You need to enable JavaScript to run this app. 如何简化jQuery中重复DOM取值的变量代码写法
优惠活动
大模型
产品
解决方案
定价
更多

如何简化jQuery中重复DOM取值的变量代码写法

两种简化写法失效的核心原因

所有尝试的写法都踩了JavaScript逻辑运算优先级的坑:

  • 第一种写法jQuery("#billing\:city").val() == "Manila" || "Quezon City"中,==的运算优先级高于||,实际执行逻辑等价于「(账单城市值等于Manila) 或者 (非空字符串"Quezon City")」。非空字符串本身是恒为真的真值,会导致整个判断永远返回true,完全失去校验作用。
  • 第二种写法只是单独给"Quezon City"加了括号,没有把它纳入等于判断的右操作数范围,执行逻辑和第一种完全一致,同样会因为字符串恒真导致判断结果不符合预期。
可正常运行的简化实现

核心优化思路是先把账单城市的取值缓存为单独变量,再用数组匹配替代多次重复的等于判断,既压缩代码长度,也减少冗余的jQuery接口调用:

// 缓存取值,避免重复调用val()
const billingCity = jQuery("#billing\:city").val();
// 直接判断取值是否在目标城市列表中
const outskirts = ["Manila", "Quezon City"].includes(billingCity);

如果需要适配不支持ES6 includes方法的老旧浏览器环境,可以替换为jQuery内置的数组查找方法:

const billingCity = jQuery("#billing\:city").val();
const outskirts = $.inArray(billingCity, ["Manila", "Quezon City"]) !== -1;

内容的提问来源于stack exchange,提问作者Bryan Veloso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.10 10:36:03