У мене є елемент форми html з його значенням, встановленим якмасив. Я хочу отримати одне з цих значень з масиву через jQuery. Як це робиться? Ось мій код. Можливо, це може говорити само за себе, якщо моє пояснення не було зрозумілим. Дякую!
var lat = 0;
var long = 0;
//gets the latitude and longitude when a user clicks on any place on the map
map.on("click", function(e) {
lat = e.latlng.lat;
long = e.latlng.lng;
//store the lat and long in an array
var latlong = [lat, long];
//here I am setting the value of my an element in my form as the array of lat and long
document.getElement(".<?= $this->getName() ?>").set("value", latlong);
var getLatlong = jQuery(".<?= $this->getName() ?>").val();
console.log("retrieved: " + getLatlong);
//it saves and retrieves properly.
//THE PROBLEM IS HERE
//THE PROBLEM IS HERE
var lat = $(".<?= $this->getName() ?>").val()[0];
var long = $(".<?= $this->getName() ?>").val()[1];
//THE PROBLEM IS HERE
//THE PROBLEM IS HERE
});
Це все працює нормально, але я не отримую того, чого я хочу. Якщо я спробую використовувати будь-який з рядків коду нижче
//THE PROBLEM IS HERE
var lat = $(".<?= $this->getName() ?>").val()[0]; //returns 9
var long = $(".<?= $this->getName() ?>").val()[1]; //returns 4
var long = $(".<?= $this->getName() ?>").val()[3]; //returns 2
var long = $(".<?= $this->getName() ?>").val()[4]; //returns 3
//THE PROBLEM IS HERE
щоб отримати або широту, або довготу ", тобто: 94.2323, 12.9932"
The index [0] returns 9,
the index [1] returns 4,
the index [3] returns 2
наче 94.2323 - це масив замість lat та довгий як масив. Я хочу [0] повернути 94.2323, а [1] повернути 12.9932.
Я спробував пояснити це і сформулювати це питання найкращим чином. Дякую.
Відповіді:
1 для відповіді № 1Ви можете використовувати JSON.stringify()
перетворити Array
до JSON
формат
document.getElement(".<?= $this->getName() ?>")
.set("value", JSON.stringify(latlong));
JSON.parse()
перетворити JSON
відформатований String
до Array
var getLatlong = JSON.parse(jQuery(".<?= $this->getName() ?>").val());
console.log(getLatlong[0], getLatlong[1]); // do stuff