无法返回正确的元素ID

时间:2012-03-10 03:35:34

标签: javascript jquery

我有三个链接作为表的排序标题,每个链接都是“排序”类的成员。我编写了一个简单的jquery函数,当单击任何“sort”类链接时会触发该函数。有一个switch case,它指定一个与tablesorter插件一起使用的列号(columnNum)。但是,现在我正在为排序类的id返回一些奇怪的值。

$(".sort").toggle(function() { 
    // the column id's are datecaption, hourscaption, taskcaption
    var column = $(this).attr('id');
    var columnNum;

    switch(column){
        case 'datecaption':
            columnNum = 1;
            break;
        case 'hourscaption':
            columnNum = 2;
            break;
        case 'taskcaption':
            columnNum = 3;
            break;
        default:
            break;
    }

    var sorting = [[columnNum,1]]; 
    $("#task_table").trigger("sorton",[sorting]); 
    return false; 
}, function(){
    var sorting = [[columnNum,0]]; 
    $("#task_table").trigger("sorton",[sorting]); 
    return false;               
});  

如果我警告列变量,我会得到“aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown” - 它不能很好地服务于其他功能。

有人能告诉我为什么会这样吗?

由于

1 个答案:

答案 0 :(得分:1)

没有更多的代码或HTML,很难说。我的猜测$(this)不是你想象的那样。尝试添加console.log($(this));(最好在Firebug中)点击结果,您会看到$(this)实际指的是什么。

此外,您可以在$('#aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown')查询DOM,并查看您应该获得的元素$(this)

有关“this”在不同情况下所指的内容的更多信息,请查看Mozilla开发者网络: https://developer.mozilla.org/en/JavaScript/Reference/Operators/this