如何对greasemonkey中现有的表进行排序?
我正在为其中包含表格的页面编写一个greasemonkey user.js。 (表格为 100 行 x 18 列。)现在我想做的是使其可按列排序,并使其在 Chrome 和 Firefox 中运行。
到目前为止,所有对答案的搜索都得出了使用 jquery/dojo 或类似内容的建议。
我可以在没有任何外部代码的情况下完成吗?毕竟,这只是以不同的顺序替换行的问题,对吧?或者说这是一件愚蠢的事情吗?
问题是,我已经在使用 dojo 来满足某些查询需求,但由于我希望它在 Firefox 和 Chrome 中运行,所以我只需将整个 dojo 内容复制粘贴到我的脚本中。
另外,到目前为止我找到的大多数解决方案似乎更适合在构建表格时使用,而不是用于更改现有表格。
任何帮助表示赞赏。
编辑:表中的所有单元格都包含数字。
I'm writing a greasemonkey user.js for a page with a table in it. (Table is 100 rows by 18 columns.) Now what I want to do is to make it sortable on column, and also have it run in both Chrome and Firefox.
All searches for answers so far resulted in suggestions to use jquery/dojo or something alike.
Can I be done without any external code? Ofter all it's just a matter of replacing the row's in a different order, right? or is that a silly thing to say?
The thing is that I'm already using dojo for some query needs but since I want it to run in both Firefox and Chrome, I just copy paste the whole dojo thing in my script..
Also, most of the solutions I found so far seem to be more for use when building a table, not for altering an existing one.
Any help is appreciated.
EDIT: All cells in the table contain numbers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
聪明的方法是使用像 tablesorter 这样的工具。
但是,由于您不想使用外部代码(目前),因此可以通过困难的方式来完成。
以下是如何以半困难的方式做到这一点。请注意,我AM使用 jQuery。明智的做法是至少将其合并到您的脚本中。
继续使用
// @require指令
。您仍然可以使用 Tampermonkey 扩展程序在 Chrome 中运行 GM 脚本。
(还有在 Chrome 下将 jQuery 包含在 GM 脚本中的其他方法,也是如此。)
无论如何,像这样的代码:就可以解决问题:
您可以在 jsFiddle 上查看它的实际效果。
更新:
要对数字进行排序,您可以使用如下排序函数:
查看 jsFiddle 上的数字排序< /a>。
The smart way is to use a tool like tablesorter.
But, since you don't want to use external code (for now), it can be done the hard way.
Here's how to do it the semi-hard way. Note that I AM using jQuery. You'd be smart to incorporate at least that into your script.
Go ahead and use the
// @require
directive. You can still run the GM script in Chrome using the Tampermonkey extension.(There are other ways of including jQuery in GM scripts under Chrome, as well.)
Anyway, code like so: will do the trick:
You can see it in action at jsFiddle.
Update:
To sort numbers, you would use a sorting function like:
See number sorting in action at jsFiddle.
我试图不回答这些“能给我一些代码吗”的问题,但因为安德斯刺痛了我。这是一个没有库的简单答案。但有一些重大假设:
不过,您可以改进 getRowValue 以轻松地超越假设#1。
演示: http://jsbin.com/akexe4
I'm trying not to answer these "can I have some code please" questions, but since Anders needled me. Here is a simple answer with no libraries. Some big assumptions though:
Array.prototype.slice.call
trick.You could improve getRowValue to get past assumption #1 pretty easily though.
DEMO: http://jsbin.com/akexe4