我需要一些关于jquery数组的帮助。
var queryArr;
$(markersArray).each(function(index) {
var _locationId = index;
var _locName = markersArray[index].name;
var _markerLat = markersArray[index].marker.getLatLng().lat();
var _markerLng = markersArray[index].marker.getLatLng().lng();
//I DO NOT KNOW THE SYNTAX BELOW HELP IN HERE PLEASE..
var locations = {
locationId:_locationId;
locationName:_locName,
lat:_markerLat,
lng:_markerLng }
queryStr = { "locations": locations} //??????????
});
queryArr.push(location); //???????
我需要使用这样的方式来达到每个元素:
alert(queryArr[0].locations.locationId);
显然,我将使用for循环通过索引来访问每个数据。
任何人都可以为我提供示例语法..我已经找到了很多固定数组但没有动态内容的例子。
答案 0 :(得分:13)
你非常接近。带有push的行需要在.each()循环内移动,你需要使用queryStr进行推送。确保没有任何其他语法错误,例如缺少分号。
queryArr.push(queryStr);
以下是您的示例:
var queryArr = [];
$(markersArray).each(function(index) {
var _locationId = index;
var _locName = markersArray[index].name;
var _markerLat = markersArray[index].marker.getLatLng().lat();
var _markerLng = markersArray[index].marker.getLatLng().lng();
var locations = {
"locationId" :_locationId;
"locationName" :_locName,
"lat" :_markerLat,
"lng" :_markerLng
};
queryStr = { "locations" : locations };
queryArr.push(queryStr);
});
答案 1 :(得分:2)
var elements = document.getElementsByTagName("div"); // returns a nodeList
var array = jQuery.makeArray(elements );
$(array ).appendTo(document.body);
或喜欢
var object = $('li');
var array = $.makeArray(object);
答案 2 :(得分:0)
var queryArr=[];
for ( var index=0; index<markersArray.length; index++){
var _locationId = index;
var _locName = markersArray[index].name;
var _markerLat = markersArray[index].marker.getLatLng().lat();
var _markerLng = markersArray[index].marker.getLatLng().lng();
var locations = {
locationId:_locationId,
locationName:_locName,
lat:_markerLat,
lng:_markerLng }
queryStr = { "locations": locations}
queryArr.push(queryStr);
}
//test - works:)
for ( var i=0; i<markersArray.length; i++){
alert(
queryArr[i].locations.locationId+"--"+
queryArr[i].locations.locationName +"--"+
queryArr[i].locations.lat);
}