querySelector vs querySelectorAll vs getElementsByClassName vs querySelector (ID) vs getElementsByIDFastest: getElementsByClassName (3.2x faster)
11,074,884 ops/sec
9,773,872 ops/sec
8,459,029 ops/sec
5,502,022 ops/sec
3,494,044 ops/sec
Fastest: getElementsByID (4.1x faster)
8,361,540 ops/sec
8,123,511 ops/sec
4,335,288 ops/sec
4,140,863 ops/sec
2,028,587 ops/sec
Fastest: getElementsByID (3.7x faster)
23,580,846 ops/sec
19,389,758 ops/sec
11,987,304 ops/sec
7,150,765 ops/sec
6,401,387 ops/sec
Fastest: getElementsByClassName (3.4x faster)
6,719,566 ops/sec
5,928,973 ops/sec
5,766,233 ops/sec
3,574,625 ops/sec
1,957,241 ops/sec
Fastest: getElementsByClassName (2.5x faster)
4,184,386 ops/sec
3,753,038 ops/sec
3,537,101 ops/sec
2,773,986 ops/sec
1,652,528 ops/sec
Fastest: getElementsByID (7.8x faster)
37,771,528 ops/sec
25,993,644 ops/sec
10,093,084 ops/sec
6,545,539 ops/sec
4,823,320 ops/sec
Results show median performance across all community submissions. Run this benchmark yourself to verify on your device.
| Test case name | Result |
|---|---|
| querySelector | |
| querySelectorAll | |
| getElementsByClassName | |
| querySelector (ID) | |
| getElementsByID |
| Test name | Executions per second |
|---|---|
| ✓ getElementsByClassName | 7,508,665 Ops/sec |
| getElementsByID | 7,453,066 Ops/sec |
| querySelector | 5,039,432 Ops/sec |
| querySelector (ID) | 4,951,413 Ops/sec |
| querySelectorAll | 2,171,270 Ops/sec |