使用jquery或javascript更改变量的值

时间:2013-09-16 14:22:42

标签: javascript jquery html function variables

这里我有一个函数,它根据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").selectedInd‌ex].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 ???

2 个答案:

答案 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/