爲了這個問題,這是我遇到的問題的簡化版本。如何根據選擇值將變量傳遞給函數?
如果我在我的HTML一個<select>
:
<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
然後我的JS:
var a,b = 12;
var c1,d1,e1,
c2,d2,e2,
c3,d3,e3,
c4,d4,e4,
c5,d5,e5,
c6,d6,e6 = // Assigned individually from loop. NOT actual code.
function myFunction(a,b,c,d,e){
// do something with a,b,c,d,e
}
$('select').on('change', function() {
var id = $(this).val();
c = c+id;
d = d+id;
e = e+id;
myFunction(a, b, c, d, e);
}
在上面的代碼,如果我選擇選項3,我想通過函數變量C3 ,d3,e3。
如何將id從'3'分配給傳遞的變量?這段代碼的選擇部分有什麼問題?
請幫忙。謝謝。
問題#2:@大衛的回答
繼如果我建立在你建議的方式對象的數組。
destinations = [
{id:'123', title:'London', lat:'1.52121' , lng:'-1.3423423', content:'a string'},
{id:'456', title:'Paris', lat:'1.52121' , lng:'-1.3423423', content:'a string'},
{id:'634', title:'Amsterdam', lat:'1.52121' , lng:'-1.3423423', content:'a string'}
]
如果我想要再通過遍歷數組和谷歌地圖標記與每個對象創建變量,我怎麼
$.each(destinations, function(i, ob) {
$.each(ob, function (key, value) {
var marker[ob.id] = new google.maps.Marker({
draggable: false,
map: map,
icon: dotMarker,
position: {lat: ob.lat, lng: ob.lng}
});
});
首先,我會用數組或對象來保存所有的值,並非所有的單個變量 – DelightedD0D
一個更合理的數據結構,好像是叫在這裏。 'c','d'和'e'好像是它們形成一個對象,並且你需要這些對象的數組。然後你只需要該數組中的第三個元素。 – David
像這樣的東西可能是去https://jsfiddle.net/otmegmnu/ –