向所有表头添加一个类

时间:2009-05-07 18:40:18

标签: jquery

我在网页中使用了jQuery和tablesorter插件。我的目标是使用元数据内联插入功能将tablesorter头禁用解析器添加到其类为空的每个头中。我概述了三个函数,第一个是将禁用解析器添加到每个头的类,使用空类(“”),第二个将对没有空白类的头文件执行类切换操作,第三个一旦设置了所有标题,它将调用实际的tablesorter。

$(function(){
    //Code is supposed to add the disable parser to each header with a blank class
    $("th").each(function(){
        if ($(this).hasClass('')){$(this).addClass('{sorter: 'false'}');
    });
});


$(function() {
    //Code manipulates headers with non-blank classes
}); 

$(function() {
    //Call tablesorter on all tables once their headers are set.
    $("table").tablesorter({}); 
});

到目前为止,第二个和第三个函数按预期工作,尽管我最终计划进一步扩展第二个函数,一旦我能解决第一个函数的问题。这导致我的问题,那就是添加解析器的第一个函数似乎根本没有添加类,而且,由于它不能正常工作,它似乎阻止第二个和第三个工作。如果我取消第一个功能,这些功能将起作用;我不确定我的语法是否错误,或者我是否能以这种方式动态添加解析器。以下是HTML标题的示例:

<th class=""><a rel = "Header" href="#" title="Sort title in decending order" class="">Title</a></th>
<th class=""><a rel = "Header" href="#" title="Sort instructor in descending order" class="">Instructor</a></th>
<th class="{sorter: 'usLongDate'}"><a rel = "Header" href="#" title="Sort column in decending order" class="">Date</a></th>
<th class="">Start/End</th>
<th class=""><a rel = "Header" href="#" title="Sort column in decending order" class="">Seats Available</a></th>
<th class=""><a rel = "Header" href="#" title="Sort column in decending order" class="">Enrolled</a></th>
<th class=""><a rel = "Header" href="#" title="Sort column in decending order" class="">Pre-Requisites</a></th>
<th class="">Workshop Actions</th>

1 个答案:

答案 0 :(得分:4)

你的问题在于这一行:

if ($(this).hasClass('')){$(this).addClass('{sorter: 'false'}'); }

{sorter:'false'}中的引号正在关闭外部引号。试试这个:

if ($(this).hasClass('')){$(this).addClass("{sorter: 'false'}"); }

除此之外,添加一个具有该值的类对我来说看起来很奇怪但是如果你确定tableorter不知道如何对列进行排序那么这应该有效。你也可以shorten the selector

$("th[class='']").addClass("{sorter: 'false'}");