Javascript:存储HTML<;选择>;作为变量?

Javascript:存储HTML<;选择>;作为变量?,javascript,html,select,options,Javascript,Html,Select,Options,HTML: 1. 2. 3. 我尝试在JavaScript中使用以下代码: var dataCap=document.getElementById(“selected2”) var userSelect=dataCap.options[dataCap.selectedIndex].text 但控制台显示:“TypeError:dataCap为null”您需要为每个选项设置一个值: <select id="selected2"> <option selected

HTML:


1.
2.
3.
我尝试在JavaScript中使用以下代码:

var dataCap=document.getElementById(“selected2”)

var userSelect=dataCap.options[dataCap.selectedIndex].text


但控制台显示:“TypeError:dataCap为null”

您需要为每个选项设置一个值:

<select id="selected2">
      <option selected value=""></option>
      <option value="2">2</option>
      <option value="3">3</option>
  </select>

我在末尾添加了
.value
,以便它知道如何获取值。

您是否试图在DOM完全呈现之前访问元素?也就是说,您是在脚本的全局空间中运行代码,还是在页面加载后触发的函数中运行代码(或在select元素之后的脚本中运行)?请发布所有相关代码。或者更好——用SSCCE准备一个JSFIDLE。我正在一个全局空间中运行它。实际上,我需要的与上面的略有不同。我需要默认值为空。我猜我需要将
onchange=“”
放入我的
元素中,并从中使用一个函数。您的答案如下。。。是的,您需要在select字段上使用已定义函数的onchange事件触发器来执行所需操作。但是,如果我使用
onchange
,则需要使用相应的函数。如果我使用函数从
中捕获数据并将其存储为变量,那么该变量将是局部变量。我需要它是全局的。这个答案会导致“TypeError:document.getElementById(…)为Null”。如果您查看我发布的JSFIDLE,当您进行选择时,它会显示下面的选择。我不确定这是怎么回事。
<select id="selected2">
      <option selected value=""></option>
      <option value="2">2</option>
      <option value="3">3</option>
  </select>
var dataCap = document.getElementById("selected2").value;