Jquery 从元素的id创建动态变量名
我正在使用下面的函数和代码按列对表进行排序,它工作得很好,但是有没有一种方法我不能用click事件重复我自己,即只有一个click事件并使用列标题的id或数据id。 谢谢Jquery 从元素的id创建动态变量名,jquery,Jquery,我正在使用下面的函数和代码按列对表进行排序,它工作得很好,但是有没有一种方法我不能用click事件重复我自己,即只有一个click事件并使用列标题的id或数据id。 谢谢 函数可排序(f,n){ var rows=$('#mytable tbody tr').get(); 行排序(函数(a,b){ var A=getVal(A); var B=getVal(B); if(AB){ 返回1*f; } 返回0; }); 函数getVal(elm){ var v=$(elm).children('td
函数可排序(f,n){
var rows=$('#mytable tbody tr').get();
行排序(函数(a,b){
var A=getVal(A);
var B=getVal(B);
if(AB){
返回1*f;
}
返回0;
});
函数getVal(elm){
var v=$(elm).children('td').eq(n).text().toUpperCase();
如果($.isNumeric(v)){
v=parseInt(v,10);
}
返回v;
}
$.each(行,函数(索引,行){
$(“#mytable”).children('tbody').append(行);
});
}
var f_sl=1;//切换排序顺序的标志
var f_nm=1;//切换排序顺序的标志
$(“#sl”)。单击(函数(){
f_sl*=-1;//切换排序顺序
var n=$(this.prevAll().length;
可排序(f_sl,n);
});
$(“#nm”)。单击(函数(){
f_nm*=-1;//切换排序顺序
var n=$(this.prevAll().length;
可排序(f_nm,n);
})
您可以这样做:
$("#sl, #nm").click(function(){
var id = $(this).attr('id');
if(id == 'sl')
f_sl *= -1;
else
f_nm *= -1;
var n = $(this).prevAll().length;
if(id == 'sl')
sortTable(f_sl,n);
else
sortTable(f_nm,n);
});
将排序变量更改为对象
var colSort = {
f_sl : 1,
f_nm : 1
}
然后,您可以非常简单地使用元素ID引用这些属性
var $cols = $("#sl, #nm").click(function(){
var idx = $cols.index(this), sorter = colSort['f_' + this.id];
sorter *= -1;
sortTable(sorter, idx);
});
var $cols = $("#sl, #nm").click(function(){
var idx = $cols.index(this), sorter = colSort['f_' + this.id];
sorter *= -1;
sortTable(sorter, idx);
});