Просмотр полной версии : сортировка tbodies
Мне надо сортировать таблицу, разделённую на tbodies. Например,
----------------------------
tbody A column total
....
....
----------------------------
tbody B column total
....
....
....
....
----------------------------
Как можно поменять tbody A и tbody B местами? Сложность в том, что они могут быть разного формата.
astrologer
25.05.2008, 12:53
<script type="text/javascript">
function swap(a,b)
{
return [
a.parentNode.replaceChild(b.cloneNode(true), a),
b.parentNode.replaceChild(a.cloneNode(true), b)
];
}
</script>
Спасибо. Только почему-то не работает.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Test</title>
<style type="text/css">
body { font-family: arial, sans-serif; }
h1, h2 { font-family: sans; }
dt { display: block; float: left; clear: both; width: 100px; text-align: right; margin: 0 8px 0 0; }
</style>
</head>
<body>
<table id="sortTest">
<tbody>
<tr><th>tbody A <a href="" onclick="sort()">SORT</a></th><th>column total</th></tr>
<tr><td></td><td>cell 1</td></tr>
<tr><td></td><td>cell 2</td></tr>
</tbody>
<tbody>
<tr><th>tbody B</th><th>column total</th></tr>
<tr><td></td><td>cell 1</td></tr>
<tr><td></td><td>cell 2</td></tr>
<tr><td></td><td>cell 3</td></tr>
<tr><td></td><td>cell 4</td></tr>
</tbody>
</table>
<script type="text/javascript">
function sort()
{
var tblSortTest = document.getElementById('sortTest');
var tBodies = tblSortTest.getElementsByTagName("tbody");
swap( tBodies[1], tBodies[0] );
}
function swap(a,b)
{
return [
a.parentNode.replaceChild(b.cloneNode(true), a),
b.parentNode.replaceChild(a.cloneNode(true), b)
];
}
</script>
</body>
</html>
У тебя ссылка должна false возврвщать! Это означает, что мы отменяем действие по умолчанию
А то скрипт срабатывает(меняет местами строки), при нажатии на ссылку, а потом ты опять переходишь по ссылке(ты же ведь ее нажал) на эту же на эту страницу в изначальном виде, нужно отменить этот переход
замени ссылку на
<a href="javascript:void(0)" onclick="sort()">SORT</a>
можно и
<a href="javascript:sort(); void(0);">SORT</a>
или
<a href="javascript:sort()">SORT</a>
если sort возвращает false
Прям полет фантазии :)
astrologer
27.05.2008, 13:43
или
<a href="javascript:sort()">SORT</a>
если sort возвращает false
Прям полет фантазии :)Если последнее выражение возвращает любое значение, отличное от void undefined, то на странице появляется строка, полученная в результате приведения этого значения к строковому типу.
Если последнее выражение возвращает любое значение, отличное от void undefined, то на странице появляется строка, полученная в результате приведения этого значения к строковому типу.
верно :)
ну тогда меняем этот вариант на
<a href="#" onclick="sort()">SORT</a>
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot