2012-05-15 32 views
4

我是一個新的jquery/js用戶,試圖將選擇器的參數傳遞給函數。下面是一些代碼:將選定的值傳遞給使用jquery選擇器的函數

// function to select data 
var data = [ 
    {val: 10, year: 1990}, {val: 20, year: 1991} 
] 
var year_data = [] 
function select_year_data(y) { 
    year_data = data.filter(function(d) {return d.year==y}) 
} 

//選擇

<select name="Year" id = "year_menu" style="width: 230px; position: absolute; left: 400px; top: 50px"> 
<option value=1990>1990</option> 
<option value=1991>1991</option> 
</select> 

我想什麼做的是這樣的:

<onchange>select_year_data($('#year_menu.val()') 

但我知道這是不是很對。

回答

5

Jquery的變化的方法可以在這裏使用Change()

$(function() 
{ 
    $('#year_menu').change(function(){ 
     select_year_data($(this).val()) 
    }); 
}); 
+0

偉大的解決方案。謝謝! – guero64

1

是什麼?

function select_year_data() { 
    var y = $('#year_menu.val()'; 
    year_data = data.filter(function(d) {return d.year==y}) 
} 
+0

看起來很棒 - 你可以讓我知道如何在改變選擇器時啓動事件(例如集成onclick部分) – mike

+0

第二行的語法是var y = $('#year_menu')。val(); –

+0

但我如何確保在更新選擇器選項時重新執行該功能? – mike

1

如果您使用的功能$.onchange的回調,那麼你將永遠有基於變量year_data

選擇的用戶選擇的數據
function select_year_data() { 
    var y = $(this).val(); 
    year_data = data.filter(function(d) {return d.year==y}); 
} 
// call that func on change event 
$('#year_menu').change(select_year_data); 

// or straight forward one without another function 
$('#year_menu').change(function(){ 
    var y = $(this).val(); 
    year_data = data.filter(function(d) {return d.year==y}); 
}); 
// assuming year_data and data is declared in global scope. 
相關問題