我有一個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
});
這一切都運行良好,但我沒有得到reuslt我想要的。如果我嘗試使用任何的代碼行的下面
//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是陣列,而不是經緯度和陣列長度。我想[0]返回94.2323,[1]返回12.9932。
我試着解釋這一點,並盡我所能格式化這個問題。謝謝。
你一遍又一遍地定義相同的變量轉換?不要這樣做。改用新的變量名稱。無論代碼塊中你定義它們的位置在哪裏,JavaScript實際上都會先運行所有的'var'語句,然後再執行其餘的代碼(在該範圍內)。 –