这里我有一个函数,它根据google places API返回一个places对象列表 函数findPlaces是:
function findPlaces(boxes,searchIndex) {
var request = {
bounds: boxes[searchIndex],
types: ["restaurant"]
};
我想如何更改此变量请求 - 列表菜单上的更改类型,因此这是HTML:
<label for="select"></label>
<select name="select" id="select">
<option>restaurant</option>
<option>bar</option>
<option>museum</option>
<option>gas_station</option>
</select>
我需要更改列表/菜单上的值以更改变量请求 - 类型[“newValue”]
我怎么能这样做?
我尝试使用此代码但不起作用:
function findPlaces(boxes,searchIndex) {
var request = {
bounds: boxes[searchIndex],
types: document.getElementById("select")[document.getElementById("select").selectedIndex].value
};
并尝试使用此代码,但再次无效:
$("#select").change(function(){
var values= $('#select option').map(function(){
return this.value;
}).get();
var index=jQuery.inArray($(this).val(), values);
findPlaces(boxes, index);
});
function findPlaces(boxes,searchIndex) {
var request = {
bounds: boxes[searchIndex],
types: [index]
};
我怎么能这样做? 所以首先我需要在HTML中更改值更改变量请求 - 类型[“值”]并更新函数findPlaces ???
答案 0 :(得分:0)
是单选还是多选?但无论如何你可以试试这个:
function findPlaces(boxes,searchIndex) {
var request = {
bounds: boxes[searchIndex],
types: [$("#select").val()]
};
}
只需使用jQuery对象选择#select
元素,并将其值(所选元素)用作类型。
答案 1 :(得分:0)
您必须注意在对象中使用DOM方法,因为您必须尊重mvc模型。
我建议您将types变量公开为方法,并在代码中更改此类型,并调用传递新类型的方法。
function Places(){
var type = "";// you could set a default value
function findPlaces(boxes,searchIndex) {
var request = {
bounds: boxes[searchIndex],
types: [type]
};
}
function changeType(value){
type = value
}
}
所以你正在使用js OO,并且当选择元素改变时可以调用changeType。
var _place = new Places();
$("#selectionElement").change(function(){
_place.changeType($(this).value);
});
EDIT1:
我在小提琴上做了一个例子:http://fiddle.jshell.net/R3xb7/1/
EDIT2:
您工具的示例:http://jsbin.com/ujExolI/1/