我有以下选择:
var squad_name= $("#squad option:selected").text();
,后面的HTML看起来像这样:
<div id="squad">
<label>Squad Type:</label>
<select id="choosesquad">
<option value ="0">Choose squad</option>
</select>
<input id="setsquad" type="button" value="Set"/><br>
<div id="unitdiv">
<label>Choose Unit:</label>
<select id="chooseunit" class="unit">
<option value ="0">Choose unit</option>
</select><br>
<label>Number of units:</label>
<select id="number" class="unit">
<option value="0">0</option>
</select><br>
</div>
在此选择之后出于某种原因,squad_name = Choseen Squad选择单位0
我无法弄明白:我做错了什么?
答案 0 :(得分:0)
这种情况正在发生,因为您选择了<option>
中的所有#squad
个标记,其中包含3个<select>
个标记,其中包含3个:selected
<option>
个标记
$("#squad option:selected")
汇总了#choosesquad
,#chooseunit
和#number
从声音中你需要使用它:
var squad_name = $("#choosesquad option:selected").text();
答案 1 :(得分:0)
您需要使用.val()而非.text()来获取选项的值。您还要选择所有选中的选项,在这种情况下将获取3的数组。
答案 2 :(得分:0)
发生这种情况的原因是因为$("#squad option:selected")
返回所有元素,所以当你在该选择上调用.text()时,它会返回每个元素中的所有文本。
以下代码将单独获取值
var choosesquad = $("#choosesquad").val();
var chooseunit= $("#chooseunit").val();
var num = $("#number").val();
答案 3 :(得分:0)
您正在选择当前所选的所有option
- 标签,这些标签将是每个选择中的一个,text()
函数从所有选定节点收集内部文本,从而生成三个文本节点“Choseen Squad选择单位0”。