Jquery选择出错?

时间:2011-01-17 17:53:44

标签: jquery html

我有以下选择:

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

我无法弄明白:我做错了什么?

4 个答案:

答案 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”。