WebKit adds getElementsByClassName
WebKit now natively supports getElementsByClassName, one of the most requested functions by JavaScript programmers.
Function getElementsByClassName
Parameters
String - String name of the Stylesheet class
Returns
Array of objects matched
Here's a simple test:
This is a test div with class 'testdiv' without ID.
JavaScript for the above sample is following:
function changeColour() {
if (!document.getElementsByClassName) {
if (confirm("You need a compatible browser to run this test!")) {
document.location.href = "http://nightly.webkit.org/";
}
} else {
var elems = document.getElementsByClassName("testdiv");
elems[0].style.backgroundColor = "#CCCCCC";
elems[0].style.color = "#000000";
}
}
function resetColour() {
if (!document.getElementsByClassName) {
if (confirm("You need a compatible browser to run this test!")) {
document.location.href = "http://nightly.webkit.org/";
}
} else {
var elems = document.getElementsByClassName("testdiv");
elems[0].style.backgroundColor = "#FF0000";
elems[0].style.color = "#ffffff";
}
}
For those interested WebKit developers have also put up a benchmark to illustrate how superior native support is over any other possible solution.
NB! To test this functionality you need to download recent nightly of WebKit.