2011-01-17 2 views
1

У меня есть следующий выбор:Не удалось выбрать JQuery?

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 команды Выбрать блок 0

Я просто не могу понять: что я делаю неправильно?

+1

Что вы ожидаете от этого? Это выглядит правильно для меня (кроме того, что выглядит так, должно быть, опечатка, конечно, это «Choose squareChoose unit0» или что-то в этом роде) –

ответ

0

Это происходит потому, что вы выбираете все <option> теги в #squad, который имеет 3 <select> метки с 3 :selected<option> теги

$("#squad option:selected") является агрегирования каждый выбранный вариант из #choosesquad, #chooseunit и #number

из звуки этого вы должны использовать:

var squad_name = $("#choosesquad option:selected").text(); 
+0

Большое спасибо. Видимо, я был временно слеп. – Pillblast

+0

отметить как ответ? – hunter

0

Чтобы получить значение параметра, вам нужно использовать .val() not .text(). Вы также выбираете все выбранные параметры, которые в этом случае получат массив из 3.

0

Причина, по которой это происходит, состоит в том, что $("#squad option:selected") возвращает все элементы, поэтому при вызове .text() в этом выборе он возвращает весь текст внутри каждого из этих элементов.

ниже код будет получить значения отдельно

var choosesquad = $("#choosesquad").val(); 
var chooseunit= $("#chooseunit").val(); 
var num = $("#number").val(); 
0

Вы выбираете все option -tags, которые в настоящее время выбраны, которые будут по одному от каждого выбор, функция text() собирает внутренний текст из всех выбранных узлов , в результате чего три текстовых узла «Choseen Squad Select unit 0».

Смежные вопросы