从数组填充下拉列表
Populate Drop Down from Array
我正在尝试填充一个数组列表字符串,以便我可以填充我的下拉列表。
传递给它一个数组字符串,并像这样设置数组列表:
var thirdParties = [{'7-Eleven', '114'},{'A Mart All Sports', '41'},{'A.J Coory Dental', '140'}];
然后我尝试像这样填充我的下拉列表:
if (id == 1) // Payment
{
//alert('Payment');
$('#SourceEntityId').empty();
$.each(accounts, function (val, text) {
$('#SourceEntityId').append($('<option></option>').val(val).html(text));
});
$('#DestinationEntityId').empty();
$.each(thirdParties, function (val, text) {
$('#DestinationEntityId').append($('<option></option>').val(val).html(text));
});
}
if (id == 2) // deposit
{
//alert('Deposit');
$('#SourceEntityId').empty();
$.each(thirdParties, function (val, text) {
$('#SourceEntityId').append($('<option></option>').val(val).html(text));
});
$('#DestinationEntityId').empty();
$.each(accounts, function (val, text) {
$('#DestinationEntityId').append($('<option></option>').val(val).html(text));
});
}
但是,下拉列表中没有到货项。我所做的是可能的吗?
数组中的对象错误。
var thirdParties = [{
text: '7-Eleven',
value: '114'
}, {
text: 'A Mart All Sports',
value: '41'
}, {
text: 'A.J Coory Dental',
value: '140'
}];
$('#SourceEntityId').empty();
$.each(thirdParties, function () {
console.log(this);
var thirdParty = this;
$('#SourceEntityId').append($('<option></option>')
.val(thirdParty.value).html(thirdParty.text));
});
OR other Way - DEMO
var thirdParties = [['7-Eleven','114'],['A Mart All Sports','41'],['A.J Coory Dental','140']];
$('#SourceEntityId').empty();
$.each(thirdParties, function () {
var thirdParty = this;
console.log(thirdParty[1]);
$('#SourceEntityId').append($('<option></option>')
.val(thirdParty[1]).html(thirdParty[0]));
});
这里有两个问题:
1。你的数组无效:
[{'7-Eleven', '114'},{'A Mart All Sports', '41'},{'A.J Coory Dental', '140'}];
这里是一个包含无效对象的数组。
如果你想要一个数组的数组,它应该是这样的:
[['7-Eleven', '114'],['A Mart All Sports', '41'],['A.J Coory Dental', '140']];
如果你想要一个有效的对象数组,那么你需要提供关键属性。像这样:
[{text:'7-Eleven', value:'114'},{text:'A Mart All Sports', value:'41'},{text:'A.J Coory Dental', value:'140'}];
2。jquery的每个回调不保持val'text
,但 index'object
:
$.each(accounts, function (idx, obj) {});
,因此如果我们使用的是合法数组,那么:
var arr = [{text:'7-Eleven', value:'114'},{text:'A Mart All Sports', value:'41'},{text:'A.J Coory Dental', value:'140'}];
$.each(arr, function (idx, obj) {
$('#SourceEntityId').append($('<option></option>').val(obj.value).html(obj.text));
});
当您执行。html()时,清空元素并输入变量。你会想使用。append()…
基本上每次运行这个循环时,它都会重置容器。
另一件事是你可以动态地创建一个无序列表,并以这种方式添加列表,并且只使用数据标签来保存值。它会给你更多的空间来发挥风格和动画。
var list_container = $("<ul/>").addClass ('list');
$('whatever container you decide this is going into').append(list_container);
$.each(thirdparties, function (index){
var li = $("<li/>").addClass('classname').attr('data-value',thirdparties[index].value);
$('.list').append(li);
$('li[data-value="'+thirdparties[index].value+'"]).html(thirdparties [index].text);
});
这是我从手机上看到的。我会把它插进去,试一试。
相关文章:
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- PHP下拉列表由要使用javascript的数据库填充
- 使用两个下拉列表的值填充文本框
- 根据url填充表单选择下拉列表
- 无法使用国家/地区选择中的状态动态填充下拉列表
- 使用javascript填充Codeigniter(表单助手)-下拉列表
- 通过使用AngularJs进行分组来填充下拉列表
- 从填充了 AJAX 的下拉列表中获取控制器的操作方法中的值
- 动态下拉列表选项在添加多列后未填充
- 如何从 API 填充数据并加载到下拉列表中
- 由vbscript下拉列表填充的经典asp-javascript数组
- 使用 ajax 和 JSP Servlet 根据选择的上一个下拉列表填充下拉列表
- 根据 Wordpress 页面中的第一个下拉列表填充第二个下拉列表
- 用下拉列表填充数字数组
- 根据选择的其他下拉列表填充一个下拉列表
- 根据下拉列表填充和禁用文本字段
- 用下拉列表填充HTML页面
- 如何使用下拉列表填充文本框
- 根据上一个下拉列表填充下拉列表
- 使用已填充下拉列表填充文本框