2016-10-07 45 views
1

我有HTML的一个相当不同的结构,我想获得一个下拉列表中选定的值作为在下面的代码,看到的设定值:获取下拉

<div class="quantityDropdown quantityDropdown-cartItem"> 
    <select id="qtySelect-61224b70-7b26-11e6-91d5-6921d6fe7421" class="cart-quantity-picker" 
      data-orderitem="61224b70-7b26-11e6-91d5-6921d6fe7421"> 
     <option value="1">1</option> 
     <option value="2" selected="">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
    </select> 
</div> 

我的代码返回null

我想得到2作为我的价值。如您所见,selected属性中没有任何值。

var quantity = document.querySelector(".quantityDropdown select").getAttribute("selected"); 

我怎么是这样的选项标记外的值2?

+2

可能重复[使用JavaScript获取下拉列表中的选定值?](http://stackoverflow.com/questions/1085801/get-selected-value-in-dropdown-list-using-javascript) – dave

+0

不,我的是不同的 –

回答

1

这会给你所选项目的值:

quantity = document.querySelector(".quantityDropdown select").value; 

但是如果你想要选择的项目的实际内容(如图所示即文本)的选项之外标签,使用:

var quantity = document.querySelector(".quantityDropdown select")[document.querySelector(".quantityDropdown select").selectedIndex].innerHTML; 
+0

完美的作品 –

1

使用document.querySelector(".quantityDropdown select").selectedIndex

1

为了让你需要选择元素上使用两个属性选择的选项值:optionsselectedIndex以获得html选项元素,那么您可以获取该值。

const dropdown = document.querySelector('.cart-quantity-picker') 
 

 
console.log('selectedIndex', dropdown.selectedIndex) 
 
console.log('options', dropdown.options) 
 
console.log('selected', dropdown.options[dropdown.selectedIndex].value)
<div class="quantityDropdown quantityDropdown-cartItem"> 
 
    <select id="qtySelect-61224b70-7b26-11e6-91d5-6921d6fe7421" class="cart-quantity-picker" data-orderitem="61224b70-7b26-11e6-91d5-6921d6fe7421"> 
 
    <option value="1">1</option> 
 
    <option value="2" selected>2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
    </select> 
 
</div>

1

的情况下,你需要得到 '值':

var dropdown = document.getElementById("qtySelect-61224b70-7b26-11e6-91d5-6921d6fe7421"); 
var selValue = dropdown.options[dropdown.selectedIndex].value; 

但是,如果你想要得到文本ΝΟΤ的,你这样做:

var dropdown = document.getElementById("qtySelect-61224b70-7b26-11e6-91d5-6921d6fe7421"); 
    var selText = dropdown.options[dropdown.selectedIndex].text; 
1
<select id="ddlViewBy"> 
    <option value="1">test1</option> 
    <option value="2" selected="selected">test2</option> 
    <option value="3">test3</option> 
</select> 
1

你应该得到的选项标签,就像这样:

var quantity = document.querySelector(".quantityDropdown select option:checked"); 

你可以使用检查也为多选和单选。