2012-01-18 5 views
0

Я использую jquery и плагин jquery «tablesorter» (http://tablesorter.com/docs/) для сортировки таблицы. теперь у меня есть трудное, что я следующий HTML (другой способ невозможно):Сортировка таблицы из нескольких таблиц

<table class="tablesorter"> 
<tr> 
     <th>ID</th> 
     <th>Name</th> 
     <th>Age</th> 
    </tr>  
</table> 
<table> 
    <tr> 
     <td>1</td> 
     <td>Bob</td> 
     <td>24</td> 
    </tr> 
</table> 
<table> 
    <tr> 
     <td>1</td> 
     <td>James</td> 
     <td>33</td> 
    </tr> 
</table> 
<table> 
    <tr> 
     <td>5</td> 
     <td>PJ</td> 
     <td>28</td> 
    </tr> 
</table> 
<table> 
    <tr> 
     <td>1</td> 
     <td>Sue</td> 
     <td>39</td> 
    </tr> 
</table> 

В каждой таблице есть одна строка. Теперь я хочу сортировать это множество таблиц, так как это одна таблица. Есть ли какое-либо решение этой проблемы?

Я нашел здесь попытку: http://jsfiddle.net/Mottie/8cg4f/31/ Но есть две две таблицы, и сценарий сортирует данные только из одной таблицы.

+0

... YU NO GOOD MARKUP> :( – Raynos

+0

Извините, я использовал форму отправки в первый раз ... – htw

ответ

0

попробовать что-то вроде этого:

var $table = $(".tablesorter"); 
$table.nextAll("table").children().appendTo($table).end().remove(); 
$table.tablesorter(); 
+0

Старайтесь избегать итерации, если ваши действия не зависят от цели. Если нет никакой логики для оценки, есть – Sinetheta

1

Таргетинг таблицы, которые вы хотите грабить, просверлить вниз к <tr> с, переместить их туда, где они должны быть, подняться обратно до (теперь пусто) <table> с, выбросить их. jsFiddle

$('table:not(.tablesorter)').find('tr').appendTo('.tablesorter') 
    .end().end().remove(); 

EDIT: согласно комментарию я смоделировал "интервал между <tr> с" помощью дополнения на <td> s jsFiddle.

Если у вас есть другие требования к окончательной странице, просто дайте мне знать, что вы хотели бы закончить, и я могу помочь создать решение, которое даст действительный html, который будет отображаться последовательно для всех ваших пользователей.

+0

Спасибо за ответ. Но это не решение./Из-за какого-то CSS-стиля (я хочу, чтобы между каждой из них было ). Я должен изменить позицию из

s не из s. Вы знаете, что я имею в виду? – htw

+0

К сожалению, это тоже не допускается, это не такая вещь, как «расстояние между

s». Никакие элементы таблицы (кроме самой таблицы) могут иметь поля на все. Вы можете имитировать это, разместив прокладку в с. Если вы сообщите нам, каков ваш желаемый результат, мы могли бы предложить вам решение вместо того, чтобы расстраивать попытки создания недопустимого html. – Sinetheta

Смежные вопросы

. Добавляя p добавление сверху и снизу всего s функционально эквивалентно размещению интервала между