-1

我使用 jQuery 将一些<th><td>元素附加到表中的许多行:

$(selector).filter(function () {
    //jQuery finds some cells, evaluates them and generates new cell content
    $(this).parent().append('<td>' + FormattedDate + '</td>');
});        

//Some code here generates counts

for(var i = column_count; i > header_count; i--) {
    $('.result_table tr:first').append("<th>test</th>");
}        

然后,我加载了这个 Greasemonkey 脚本,该脚本应该使整个表可排序。但是,Greasemonkey 脚本仅在我使用 jQuery 添加单元格之前对作为表格一部分的列进行排序。我怎样才能让它在所有列上工作?

4

1 回答 1

0

如果不更改 Greasemonkey 脚本,您将无法做到这一点。但是,在这种情况下,这相当容易,因为目标页面只需更改一次表格并执行它$(document).ready(名义上DOMContentLoaded)。

因此,如果您将 Greasemonkey 脚本设置为在 window 运行load,那么它将在修改表后运行。

对于这个特定的脚本,只需将最后几行更改为:

var allTables = window.document.documentElement.getElementsByTagName ("TABLE");
CODEBOX.forEach (allTables, function (table){
    CODEBOX.tabsorter.processTable (table);
} );

至:

window.addEventListener ("load", function () {
    var allTables = window.document.documentElement.getElementsByTagName ("TABLE");
    CODEBOX.forEach (allTables, function (table){
        CODEBOX.tabsorter.processTable (table);
    } );
} );
于 2013-10-22T03:19:01.333 回答