You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery如何定位值包含双引号的复选框?

解决含转义双引号的复选框选中问题

问题原因

  1. 你的复选框value属性在HTML中写的是under 28",浏览器解析后实际值为under 28"(&会被转译为&,最终得到表示双引号的HTML实体"),和你数组里的under 28"不匹配
  2. 直接拼接选择器字符串时,空格、双引号这类特殊字符会破坏选择器语法,导致无法定位元素

解决方案

方法1:使用filter方法匹配(推荐)

避开选择器语法问题,直接遍历复选框并对比value属性:

let sizeArr = ['short', 'under 28"', 'over 28"'];
sizeArr.forEach(function(val) {
  // 将数组中的双引号转为HTML实体字符串,匹配DOM中的实际值
  const targetValue = val.replace(/"/g, '"');
  $(':checkbox').filter(function() {
    return this.value === targetValue;
  }).prop('checked', true);
});

方法2:修正属性选择器写法

用引号包裹value值,确保选择器语法正确:

let sizeArr = ['short', 'under 28"', 'over 28"'];
sizeArr.forEach(function(val) {
  const targetValue = val.replace(/"/g, '"');
  $(`:checkbox[value="${targetValue}"]`).prop('checked', true);
});

为什么之前的尝试失败?

你之前将数组中的双引号替换为"是错误的——HTML里的"会被浏览器解析成",所以DOM中复选框的实际value是under 28",而非你写的under 28"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:22:46