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

如何清除多个拥有相同ID的select选择框的选中状态?

嘿,我注意到你碰到了一个挺常见的小问题——页面里多个<select>表单用了同一个ID works,这其实是不符合HTML标准的哦,ID在整个页面里必须是唯一的标识。不过别急,我给你两种方案来搞定清除选中状态的需求:

方案1:临时处理现有重复ID的情况(不推荐长期使用)

因为浏览器的getElementById方法只会返回第一个匹配到的元素,所以要选中所有ID为works的<select>,得用属性选择器来实现:

原生JavaScript实现

// 选中所有id属性为works的select元素
const allWorksSelects = document.querySelectorAll('[id="works"]');
// 遍历每个select,将选中值设为空(对应你默认的"-select-"选项)
allWorksSelects.forEach(select => {
  select.value = '';
});

jQuery实现(如果项目里用了jQuery)

$('[id="works"]').val('');

方案2:修正HTML结构(推荐的规范做法)

既然ID重复本身就不规范,不如直接把ID改成class,这样既符合标准,后续维护也更省心。修改后的HTML会是这样:

<select class="works" name="works[]">
  <option selected="" value="">-select-</option>
  <option value="A">A</option>
  <!-- 其他选项 -->
</select>
<select class="works" name="works[]">
  <option selected="" value="">-select-</option>
  <option value="D">D</option>
  <!-- 其他选项 -->
</select>

然后清除选中状态的代码就更直观了:

原生JavaScript实现

const allWorksSelects = document.querySelectorAll('.works');
allWorksSelects.forEach(select => {
  select.value = '';
});

jQuery实现

$('.works').val('');

为什么推荐方案2呢?因为ID唯一是HTML的基础规则,不遵守的话很容易在后续开发中踩坑——比如CSS样式只作用在第一个元素,或者JS获取元素时出现意料之外的错误,所以尽量修正结构才是长久之计哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:08:06