为select控件中的每个选项存储一个数组
Store an array to each option in select control
我目前正在构建一个动态选择控件,如下所示,
targetSelectCtrl.empty().html(function () {
var appendData ='';
$.each(result, function (key, value) {
appendData += "<option title = '" + value.Name +
"' value='" + value.Id +
"' data-positions=" + value.PositionsList +
" data-isactive='" + value.IsActive + "'>" +
value.Name + "</option>";
});
return appendData;
});
value.PositionsList
是一个javascript数组对象,我想将其存储在每个选项中。我尝试了上面的代码,但没有成功。
这个想法是,每当用户更改选项时,我都需要在网页中显示位置列表。请指导我如何做到这一点。
您可以尝试这种方法,无需编码/解码,您可以使用PositionsList:的任何对象
JSFiddle
var targetSelectCtrl = $("select");
var result = [
{Name:'name1',Id:'id',PositionsList:[1,2,3,4],IsActive:'.'},
{Name:'name2',Id:'id',PositionsList:[1,2,3,4],IsActive:'.'}
];
targetSelectCtrl.empty();
var option;
$.each(result, function (key, value) {
option = $("<option/>").attr({
title:value.Name,
}).html(value.Name).data({
positions:value.PositionsList,
isactive:value.IsActive
});
targetSelectCtrl.append(option);
});
targetSelectCtrl.change(function(e) {
console.debug(" positons",$(e.target).find("option:selected").data('positions'));
});;
您应该尝试将数组序列化为JSON对象。例如:
var appendData ='';
$.each(result, function (key, value) {
// Encode as JSON:
var serializedList = JSON.stringify(value.PositionsList);
// Escape single quotes:
serializedList = serializedList.replace(/'/g, "'");
appendData += "<option title = '" + value.Name+
"' value='" + value.Id+
"' data-positions='" + serializedList+
"' data-isactive='" + value.IsActive+ "'>" +
value.Name+ "</option>";
});
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 根据id将json数组组合为一个json数组
- JavaScript数组包含一个值
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- jQuery$.inArray()总是返回-1和一个对象数组
- 在数组中的一个元素上设置多个值
- javascript处理一个对象数组以获得一个新的对象数组
- 作为一个二维数组,从ajax接收
- 你能用来自数组的属性名称生成一个对象吗
- 多维关联数组的最后一个索引
- 如何创建一个方法来验证数组的范围
- 循环以检查数组中的最后一个图像
- 在Javascript中将一个值和字符串数组转换为if语句
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 如何将一个对象添加到每个对象数组中
- 如何创建一个谷歌地图地理坐标数组
- 如何从另一个带下划线的数组中筛选带元素的数组
- 如何在PHP数组中加载下一个youtube
- 查找对象数组是否包含其中一个标记的最快方法
- 如何使用Javascript和Ajax传递一个HTML选择标签到PHP $_POST与一个(数组)var当名称属性是一个