Greasemonkey脚本使用jQuery忽略附加到表行的元素

时间:2013-10-21 00:24:06

标签: javascript jquery html greasemonkey

我使用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>");
}        

然后,我加载应该使整个表可排序的this Greasemonkey script。但是,在我使用jQuery添加单元格之前,Greasemonkey脚本只能对作为表的一部分的列进行排序。如何使其适用于所有列?

1 个答案:

答案 0 :(得分:0)

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

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

对于this particular script,只需更改最后一行:

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);
    } );
} );