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

在for循环中匹配数组项并设置selected属性(禁用ES6语法)

嘿,这事儿好办!完全不用ES6语法,咱们用传统的for循环就能轻松实现你要的功能。先给你两种常用的实现方式,按需选就行:

方法1:直接创建DOM元素(更安全,推荐)

这种方式不会有XSS风险,适合动态数据场景:

// 你的分组数组
var groups = [
    { name:"eng1", value: "12" },
    { name: "eng2", value: "247" },
    { name: "eng23", value: "112" }
];
// 目标ID,注意这里用字符串和数组里的value类型保持一致!
var targetGroupId = "247";
// 获取页面上的select元素(替换成你实际的ID)
var selectElement = document.getElementById("your-select-id");

// 遍历数组生成option
for (var i = 0; i < groups.length; i++) {
    var currentGroup = groups[i];
    // 创建option节点
    var option = document.createElement("option");
    // 设置option的显示文本和值
    option.textContent = currentGroup.name;
    option.value = currentGroup.value;
    
    // 判断当前option的value是否匹配目标ID,匹配就加selected属性
    if (currentGroup.value === targetGroupId) {
        option.selected = true;
    }
    
    // 把option添加到select里
    selectElement.appendChild(option);
}

方法2:拼接HTML字符串(简单直接,适合静态数据)

如果你的数据是静态安全的,也可以直接拼接HTML字符串:

var groups = [
    { name:"eng1", value: "12" },
    { name: "eng2", value: "247" },
    { name: "eng23", value: "112" }
];
var targetGroupId = "247";
var optionsHtml = "";

for (var i = 0; i < groups.length; i++) {
    var currentGroup = groups[i];
    // 动态判断是否添加selected属性
    var selectedAttr = (currentGroup.value === targetGroupId) ? ' selected="selected"' : '';
    // 拼接option的HTML
    optionsHtml += '<option value="' + currentGroup.value + '"' + selectedAttr + '>' + currentGroup.name + '</option>';
}

// 把生成的option插入到select中
document.getElementById("your-select-id").innerHTML = optionsHtml;

关键注意点:

  • 一定要保持类型一致:你的数组里value是字符串类型(比如"247"),所以targetGroupId最好也定义成字符串,用===严格相等判断才不会出错;如果非要用数字,那判断时可以转成字符串,比如currentGroup.value == targetGroupId(不过还是推荐严格相等)
  • 所有变量都用var声明,避免使用ES6的let/const,完全符合你的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:44:38