Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.02.2012, 09:00
Интересующийся
Отправить личное сообщение для battrack Посмотреть профиль Найти все сообщения от battrack
 
Регистрация: 03.03.2009
Сообщений: 13

Вопрос по each() и перебору строк таблицы
В данный момент занимаюсь изучением jQuery сразу по двум книгам и информации из инета. В одной книге застрял на одном примере.
Вопрос чисто по синтаксису (по крайней мере я так думаю).
Рассматривается пример сортировки таблицы при клике на заголовок столбца.
Есть таблица <table class="sortable">
в которой строками являются книги (столбцы: заголовок, автор, издание, цена).таблица разделена на <thead> и <tbody>
Клик по ячейке <th class="sort-alpha">title</th> вызывает функцию сортировки строк данной таблицы по названию.
Ниже привожу код.


$(document).ready(function() {
$('table.sortable').each(function() {
var $table = $(this);
$('th', $table).each(function(column) {
var $header = $(this);
if ($header.is('.sort-alpha')) {
$header.addClass('clickable').hover(function() {
$header.addClass('hover');
}, function() {
$header.removeClass('hover');
}).click(function() {
var rows = $table.find('tbody > tr').get();
rows.sort(function(a, b) {
var keyA = $(a).children('td').eq(column).text()
.toUpperCase();
var keyB = $(b).children('td').eq(column).text()
.toUpperCase();
if (keyA < keyB) return -1;
if (keyA > keyB) return 1;
return 0;
});
$.each(rows, function(index, row) {
$table.children('tbody').append(row);
});
});
}
});
});
});

Вопрос по конкретной части кода (весь код чтобы мне понять - до этого еще далеко). Пока вопрос лишь по 4-ой строке:

$('th', $table).each(function(column) { - что это за синтаксис такой?
$('th', $table) - ???? если мы хотим перебрать все колонки почему не записываем таким образом: $($table th) ??

Также не понятно применение each к таблице в целом (2-я строка кода). Что мы этим each-ем перебираем? Таблица то одна.

(на всякий случай поясню что алгоритм сортировки не идеальный. просто в книге он рассматривается как первый шаг, который в дальнейшем улучшается в следующих примерах)
Ответить с цитированием
  #2 (permalink)  
Старый 09.02.2012, 12:30
Аватар для bret
Кандидат Javascript-наук
Отправить личное сообщение для bret Посмотреть профиль Найти все сообщения от bret
 
Регистрация: 04.10.2008
Сообщений: 128

Пользуйте кнопку JS

http://api.jquery.com/jQuery/ - это по поводу контекста

each-ем перебираем все th в контексте данной таблицы
Если бы в качестве $table у вас был селектор - то вы могли бы воспользоваться этим $($table+' th')
__________________
я подыскиваю мозг... твой подойдёт
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 15:42
вывод последних строк с таблицы бд, как на твиттере totje jQuery 8 08.01.2011 14:46
Динамическое отображение строк таблицы JukiPuki Общие вопросы Javascript 2 18.06.2010 11:55
Перемещение строк таблицы в Firefox barcelona jQuery 17 23.02.2009 14:41
Автоматическая подсветка строк таблицы mihha Элементы интерфейса 5 01.02.2009 00:28