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

如何获取JavaScript创建的下拉列表选中选项的标题(YES/NO)

解决方案:获取下拉列表选中选项的标题

先梳理你代码里的两个核心问题:

  1. 你的createSelect2函数只创建了<select>元素,但没有把array里的选项(YES!/NO)添加到下拉列表中,空的下拉列表自然无法获取选中内容;
  2. 你获取选中项时,错误地定位了id="tag"的元素,但实际你的下拉列表id是"select-" + rowNumber,找错了目标元素。

第一步:补全下拉列表创建代码,添加选项

先把createSelect2函数完善,把数组里的选项真正渲染到下拉列表中:

function createSelect2(tag) {
  var select = document.createElement("select");
  select.id = "select-" + rowNumber;
  var array = [
    { title: "YES!", value: "return 0;" },
    { title: "NO", value: "return 1231 * area;" }
  ];
  
  // 遍历数组,生成<option>并添加到select中
  array.forEach(item => {
    var option = document.createElement("option");
    option.textContent = item.title; // 设置选项显示的标题文本
    option.value = item.value; // 设置选项的value属性
    select.appendChild(option);
  });
  
  tag.appendChild(select);
}

第二步:正确获取选中选项的标题

现在下拉列表有可选择的选项了,在另一个函数里通过正确的id定位下拉列表,再获取选中项的文本:

// 注意替换成实际的rowNumber值,比如rowNumber为1时,id是"select-1"
var selectElement = document.getElementById("select-" + rowNumber);
if (selectElement) {
  // 获取选中选项的标题文本
  var yesno = selectElement.options[selectElement.selectedIndex].text;
  // 也可以用更标准的textContent属性,效果一致
  // var yesno = selectElement.options[selectElement.selectedIndex].textContent;
  console.log(yesno); // 会输出选中的YES!或NO
}

额外优化:如果rowNumber是动态值

如果rowNumber是动态递增的(比如每次创建下拉列表都会变化),你可以给所有这类下拉列表加统一类名,避免依赖id拼接:

// 创建select时添加类名
select.className = "yes-no-select";

// 获取时通过类名定位(单个下拉列表用querySelector,多个用querySelectorAll)
var selectElement = document.querySelector(".yes-no-select");

这样就不用纠结rowNumber的具体值了,定位更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:36:56