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.