Доброго времени суток! Ситуация обстоит следующим образом: на странице есть несколько таблиц с классом ".content_menu". Примерно следующего вида: Код (html): <table class="content_menu"> <tr> <th>Наименование</th> <th>Фото</th> <th>Кол-во, гр.</th> <th>Цена, р.</th> </tr> <tr> <td>---</td> <td>---</td> <td>---</td> <td>---</td> </tr> <tr> <td>---</td> <td>---</td> <td>---</td> <td>---</td> </tr> <tr> <td>---</td> <td>---</td> <td>---</td> <td>---</td> </tr> </table> Задача: всем первым ячейкам в каждой строке присвоить класс n1, вторым - n2, третьим - n3 , четвертым - n4. Чтобы получилось: Код (html): <table class="content_menu"> <tr> <th>Наименование</th> <th>Фото</th> <th>Кол-во, гр.</th> <th>Цена, р.</th> </tr> <tr> <td class="n1">---</td> <td class="n2">---</td> <td class="n3">---</td> <td class="n4">---</td> </tr> <tr> <td class="n1">---</td> <td class="n2">---</td> <td class="n3">---</td> <td class="n4">---</td> </tr><tr> <td class="n1">---</td> <td class="n2">---</td> <td class="n3">---</td> <td class="n4">---</td> </tr> </table> В самом начале пробовал использовать код вида: Код (CODE): window.addEvent('domready', function() { $$('.content_menu tr td:nth-child(1)').each(function(it){it.addClass('n1')}); }); или Код (CODE): window.addEvent('domready', function() { $$('.content_menu tr ').getElements('td:nth-child(1)').each(function(it){it.addClass('n1')}); }); Однако использование псевдо-селекторов всегда вызывало ошибку: После этого решил попробовать следующий способ (и разные его вариации): Код (CODE): window.addEvent('domready', function() { $$('.content_menu').getElements('tr').each(function(trs, k){ trs.getElements('td').each(function(tds, p){ tds.addClass('n'+p); }); }); }); Однако результат всегда следующий: Код (html): <table class="content_menu"> <tr> <th>Наименование</th> <th>Фото</th> <th>Кол-во, гр.</th> <th>Цена, р.</th> </tr> <tr> <td class="n1">---</td> <td class="n1">---</td> <td class="n1">---</td> <td class="n1">---</td> </tr> <tr> <td class="n2">---</td> <td class="n2">---</td> <td class="n2">---</td> <td class="n2">---</td> </tr><tr> <td class="n3">---</td> <td class="n3">---</td> <td class="n3">---</td> <td class="n3">---</td> </tr> </table> <table class="content_menu"> <tr> <th>Наименование</th> <th>Фото</th> <th>Кол-во, гр.</th> <th>Цена, р.</th> </tr> <tr> <td class="n1">---</td> <td class="n1">---</td> <td class="n1">---</td> <td class="n1">---</td> </tr> <tr> <td class="n2">---</td> <td class="n2">---</td> <td class="n2">---</td> <td class="n2">---</td> </tr><tr> <td class="n3">---</td> <td class="n3">---</td> <td class="n3">---</td> <td class="n3">---</td> </tr> </table> Т.е. для каждой таблицы он начинает отсчет "p" с 0, и прибавляет единицу для каждой строки, вместо того, чтобы делать это с переменной "k", а для "p" добавлять 1 для каждой ячейки в строке. В итоге рабочий вариант получился совсем уж грубый: Код (CODE): window.addEvent('domready', function() { $$('.content_menu').each(function(tbl, a){ tbl.setProperty('id','content_menu_'+a); }); var menus_count = $$('.content_menu').length; for(i=0; i < menus_count; i++) { $('content_menu_'+i).getElements('tr').each(function(trs, j){ trs.setProperty('id','tr_'+i+'_'+j); }); var trs_count = $('content_menu_'+i).getElements('tr').length; for(k=0; k < trs_count; k++) { $('tr_'+i+'_'+k).getElements('td').each(function(tds, z){z++;tds.addClass('n'+z);}); } $('content_menu_'+i).getElements('tr').each(function(trs, j){ trs.removeProperty('id'); }); } $$('.content_menu').each(function(tbl, a){ tbl.removeProperty('id'); }); }); Так все, разумеется, работает. Однако код получился громоздкий + много лишних действий (добавление id аж каждой строке, потом удаление всех этих по сути ненужных id). Соответственно, вопрос: кто-нибудь может подсказать, как сделать то же самое, но более элегантно и эффективно? Заранее благодарю всех откликнувшихся!