如何使用jquery在var中获取下拉列表的所有值
本文关键字:下拉列表 获取 何使用 jquery var | 更新日期: 2023-09-27 18:04:45
我想比较字符串与下拉列表中的所有值。以及dropdownlist的哪个值与该字符串匹配并且应该被选中。
例子<div class="col-lg-3">
<asp:DropDownList ID="DropDownListVendor" class="form-control text-box-border" runat="server" DataSourceID="SqlDataSource1" DataTextField="vendor_name" DataValueField="vendor_name"></asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Nibrass_DBConnectionString %>" SelectCommand="SELECT [vendor_name] FROM [Vendor_tb]"></asp:SqlDataSource>
</div>
DropDownListVendor已经在下拉列表中返回并显示两个值[Compaq,Hp]。
现在我想比较一个字符串与所有的dropdownlistvendor值。我尝试了这个代码来获取下拉列表的所有值。但是它不工作。
var vendorArr = [];
$('#DropDownListVendor').each(function() {
vendorArr.push($(this).attr('value'));
});
alert("vendor Array ==" + vendorArr[0]);
在警报vendor Array == Undefined
中返回。谢谢。
在您的情况下,您必须循环options
。#DropDownListVendor
选择器只能获得select
元素本身,以及当前的selected value
,而不是所有可能的值。
$('#DropDownListVendor option').each(function() {
vendorArr.push($(this).attr('value'));
});
工作的例子:
var vendorArr = [];
$('#DropDownListVendor option').each(function() {
vendorArr.push($(this).attr('value'));
});
console.log(vendorArr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="DropDownListVendor">
<option value="Compaq">Compaq</option>
<option value="HP">HP</option>
<option value="Lenovo">Lenovo</option>
<option value="IBM">IBM</option>
</select>
您可以使用.map()
在select列表中循环使用选项,如
var vendorArr = $("#DropDownListVendor option").map(function() {
return this.value;
}).get();
既然,asp下拉列表id可能会改变,当呈现在html中,如果你使用asp母版页面,你可以使用Attribute Ends With Selector
来解决,如:
var vendorArr = $("[id$='DropDownListVendor'] option").map(function() {
return this.value;
}).get();