16 May 2007
Fast DOM querying
A number of development threads we've been working on have recently run into trouble with the JavaScript not being able to easily obtain the necessary selections of nodes from the browser DOM. These DOM queries are usually similar in nature to a CSS selector requiring, for example, a selection of all nodes contained within an element of specified tag-name, and having a class or id attribute of a specified value. Often it would be convenient to actually use CSS syntax to specify a selection statement (eg. a.new, a.ext, #portal a:hover), and have a DOM-node-list returned containing all matching elements in the document. Many other people have been having similar problems with the limited selection abilities of the basic DOM methods and have come up with a number of open source solutions.
- getElementsByWhatever
- getElementsBySelector - Simon Wilson
- Faster DOM Queries (code) - Dean Edwards
- getElementsBySelector - Dave Herman
- Fast DOM Queries in Today’s Browsers - Alex Russell
MediaWiki Sortable Tables
It says in M:Help:Sorting that MediaWiki version 1.9.x now has native support for sortable tables. But actually the method they're using is fully a client-side JavaScript solution developed here by Joost de Valk. So by adding the source code to your MediaWiki:Common.js article (and enabling it by setting $wgUseSiteJs to true in your LocalSettings.php file) any wiki can do it. This will compliment the new display filter and upload CSV extensions perfectly. The following example also demonstrates another useful feature which is the alternate striped background colours making the table much easier to read, these stripes are maintained regardless of the sorting order of the table.
City | January (Low) |
January (High) |
July (Low) |
July (High) |
---|---|---|---|---|
Amman | 4°C | 12°C | 18°C | 32°C |
Baghdad | 0°C | 16°C | 24°C | 43°C |
Cairo | 8°C | 18°C | 21°C | 36°C |
Damascus | 0°C | 12°C | 16°C | 36°C |
Dubai | 15°C | 23°C | 30°C | 39°C |
Jerusalem | 5°C | 13°C | 17°C | 31°C |
Riyadh | 8°C | 21°C | 26°C | 42°C |
Tehran | -3°C | 7°C | 22°C | 37°C |
- See M:Help:Sorting for details about syntax and usage
- Get the JavaScript code from www.joostdevalk.nl/code/sortable-table