一个非常基本的问题......
我有一个在页面加载时触发的jquery函数:
$(document).ready(function () {
// some code
$('#filter').keyup(function() {
});
}
代码过滤HTML表格中的第一列。我现在想要按nth
列进行过滤,但我不想写两个非常相似的函数。
我可以将函数更改为接受单个参数,如下所示:
$(document).ready(function (column_num) {
// some code
$('#filter').keyup(function() {
});
}
哪个好。但是,如何在我的HTML文件中执行该函数,为函数提供单个参数?
答案 0 :(得分:2)
<强> HTML:强>
Filter 1:<input type="text" class="filter" data-filter-column="1">
Filter 2:<input type="text" class="filter" data-filter-column="2">
Filter 3:<input type="text" class="filter" data-filter-column="3">
<div id="test"></div>
<强> JavaScript的:强>
$(document).ready(function () {
$('.filter').keyup(function(e) {
var column_num = $(this).attr("data-filter-column");
var filter_token = $(this).val();
//filterCol(column_num, filter_token);
$("#test").text("Filter column " + column_num + " by token " + filter_token);
});
});
在此处查看演示:http://jsfiddle.net/3cte4/2/
答案 1 :(得分:1)
我不完全确定我明白你想要完成什么,但我认为你需要这样的事情:
var handler = function(column_num) {
switch (column_num) {
...
}
}
$(document).ready(function () {
$('#filter_for_column_1').keyup("column1", handler);
$('#filter_for_column_2').keyup("column2", handler);
$('#filter_for_column_3').keyup("column3", handler);
...
}