使用jquery创建动态数组

时间:2010-10-25 04:06:09

标签: jquery arrays dynamic

我需要一些关于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循环通过索引来访问每个数据。

任何人都可以为我提供示例语法..我已经找到了很多固定数组但没有动态内容的例子。

3 个答案:

答案 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);

}