создать динамический массив с помощью jquery - PullRequest
5 голосов
/ 25 октября 2010

Мне нужна помощь с массивами 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 ]

13 голосов
/ 25 октября 2010

Ты очень близко.Строка с push должна быть перемещена внутри цикла .each (), и вам нужно использовать queryStr для push.Убедитесь, что у вас нет других синтаксических ошибок, например пропущенных точек с запятой.

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);
 });
2 голосов
/ 02 ноября 2012
var elements = document.getElementsByTagName("div"); // returns a nodeList
var array = jQuery.makeArray(elements );
$(array ).appendTo(document.body);

или как

var object = $('li');
var array = $.makeArray(object);
0 голосов
/ 25 октября 2010
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);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...