从动态列表对象中获取对象
Get an object from dynamic list object
我有一个变量列表如下,
var gfList = {};
gfList['1'] = {
center: new google.maps.LatLng(41.878113, -87.629798),
radius: 400
};
gfList['2'] = {
center: new google.maps.LatLng(40.714352, -74.005973),
radius: 250
};
gfList['3'] = {
center: new google.maps.LatLng(34.052234, -118.243684),
radius: 650
};
gfList['4'] = {
center: new google.maps.LatLng(49.25, -123.1),
radius: 550
};
我想要一个对象从这个列表中基于我的选择框的值选择。
如果我使用Static Value
$('#geofenceId').on("change", function() {
var geofenceId = '1';
var gfence = gfList[geofenceId];
alert('Values are : ' + geofenceId + ',' + gfence.center + '--' + gfence.radious);
});
但是这个代码不工作,如果我从select Box
中获得值$('#geofenceId').on("change", function() {
var geofenceId = $('#geofenceId').val();
var gfence = gfList[geofenceId];
alert('Values are : ' + geofenceId + ',' + gfence.center + '--' + gfence.radious);
});
在浏览器控制台
TypeError: gfence is undefined
我建议您使用数组而不是JSON对象来处理数据。
然后,当更改事件被触发时,使用$(this).find(':selected').val()
获取选项的值,在其上应用parseInt()
,最后从具有新索引的结构中获取条目。
var data = new Array();
data.push({ id : "foo", extra : "extra data"});
// prepare your data here
$('.js-dropdown').on('change', function() {
var option = $(this).find(':selected');
var index = parseInt(option.val());
console.log('outcome: ' + data[index]);
});
当然,使用数组会迫使您对数据进行排序。否则,使用原始JSON对象。然而,我认为你必须解析输入,以确保你的代码工作。
相关文章:
- 从ajax请求中获取javascript对象
- 通过字符串获取JSON对象
- 如何在angular中获取json对象的名称
- 如何使用angular获取json对象的名称
- 获取一个对象´s属性的名称使用字符串
- 正在从嵌套值获取父对象
- 获取js对象键的值
- 获取原型对象的名称
- 如何从给定的代码中获取JSON对象
- 了解如何在数组中获取特定对象
- 获取整数对象属性名称的最小值和最大值
- 从Angular Scope中的Array中获取所有对象
- 在Javascript函数中获取Java对象属性
- 如何在JQUERY中从HTML文档中获取XML对象
- Backbone集合:如何从API中获取特定对象以放置在模型中
- 基于单个属性从数组中获取唯一对象
- 获取JSON对象中数组的长度
- 尝试获取每个对象的总和
- 正在尝试获取非对象php-DOM的属性
- 如何从HTML元素中获取Javascript对象