find
медленно в IE, потому что IE не реализует собственный getElementsByClassName
.Самое быстрое решение - применить знания о вашей структуре DOM к функции, которая выбирает элементы.Это менее гибко, но всегда будет самым быстрым решением.В этом случае, похоже, что единственными элементами, которые имеют класс test
, являются td
:
var rows = $table[0].rows, cells, i, j, numRows, numCells, result = [];
for(i = 0, numRows = rows.length; i<numRows; i++) { //Iterate over the table's rows
cells = rows[i].children;
for(j = 0, numCells = cells.length; j<numCells; j++) { //Iterate over the cells in the row
if(cells[j].className == "test") { //Won't be valid if the cells have more than one class
result.push(cells[j]);
}
}
}
Это только пример.Как я уже сказал, вы жертвуете гибкостью ради скорости, поэтому вам может понадобиться настроить ее, чтобы приспособиться к вашей конкретной структуре, но принцип остается.