javascript проблемы с сортировкой!
Код сортировка нужно сделать так чтобы сначала по Отсортировать таблицу по площади и № аудиторий. Не понимаю где я ошиблась(:help: :help:
<!DOCTYPE HTML> <HTML> <head> <meta htpp-equiv="content-type"content="text/css; charset=winddows-1251"> </head> <body> <table id="tab" border="1" align="center"> <caption><b> Аудитории </b></caption> <tr><th rowspan="2"> Артикул </th> <th colspan="2"> Отвественный за аудитории </th> <th rowspan="2"> Площадь аудитории <br> кв.м </th></tr> <tr><td>Должность</td><td>ФИО работника</td></tr> <tr> <td>12</td> <td>Зав. кафедрой<br> информатики </td> <td>Сидоров И.С.</td> <td>60</td></tr> <tr> <td>22</td> <td>Зав. кафедрой<br>прочности л.а. </td> <td>Хазанов Х.С.</td> <td>30</td></tr> <tr> <td>9</td> <td>Зав. кафедрой<br> менеджмента</td> <td>Федоров Ю.В.</td> <td>120</td></tr> <tr> <td>45</td> <td>Секретарь кафедры<br> ин. языков</td> <td>Карамзина Л.Л.</td> <td>30</td></tr> <tr> <td>18</td> <td>Секретарь кафедры<br> прочности л.а.</td> <td>Толстоусов П.Л.</td> <td>120</td></tr> <tr> <td>23</td> <td>Секретарь кафедры<br> физики </td> <td>Фролов Ю.Б</td> <td>60</td></tr> </table> <a href="javascript:f()">Отсортировать таблицу по площади и № аудиторий</a> </body> <script type="text/javascript"> function zap(a,n,p,c) { console.log(a,n,p,c) this.artik=a; this.name=n; this.proiz=p; this.ctoem=c; } function q(c,b) { if (c.name>b.name) return -1; else if (c.name>b.name) return 1; else if (c.ctoem<b.ctoem) return -1; else if (c.ctoem>b.ctoem) return 1; else return 0; } function f() { var laba=[]; var tab=document.getElementById("tab"); var rowEl=tab.getElementsByTagName("tr") for (var i=1; i<rowEl.length; i++) { var colEl=rowEl[i].getElementsByTagName("td"); console.log(colEl) laba [i-1]=new zap (colEl[0].innerHTML,colEl[1].innerHTML,colEl[2].innerHTML,colEl[3].innerHTML); } laba.sort (q); for(var i=1; i<rowEl.length; i++) { colEl=rowEl[i].getElementsByTagName("td"); with(laba[i-1]) { colEl[0].innerHTML=artik; colEl[1].innerHTML=name; colEl[2].innerHTML=proiz; colEl[3].innerHTML=ctoem; } } } </script> </html> |
Mahylik,
у вас строки для сортировки начитаются c i = 2, а не 1 Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. иначе трудно сказать в какой строке ошибка |
Вот так:cray: ???
он начал сортировать но не по возрастанию(((
<head>
<meta htpp-equiv="content-type"content="text/css; charset=winddows-1251">
</head>
<body>
<table id="tab" border="1" align="center">
<caption><b> Аудитории </b></caption>
<tr><th rowspan="2"> Артикул </th>
<th colspan="2"> Отвественный за аудитории </th>
<th rowspan="2"> Площадь аудитории <br> кв.м </th></tr>
<tr><td>Должность</td><td>ФИО работника</td></tr>
<tr> <td>12</td> <td>Зав. кафедрой<br> информатики </td> <td>Сидоров И.С.</td> <td>60</td></tr>
<tr> <td>22</td> <td>Зав. кафедрой<br>прочности л.а. </td> <td>Хазанов Х.С.</td> <td>30</td></tr>
<tr> <td>9</td> <td>Зав. кафедрой<br> менеджмента</td> <td>Федоров Ю.В.</td> <td>120</td></tr>
<tr> <td>45</td> <td>Секретарь кафедры<br> ин. языков</td> <td>Карамзина Л.Л.</td> <td>30</td></tr>
<tr> <td>18</td> <td>Секретарь кафедры<br> прочности л.а.</td> <td>Толстоусов П.Л.</td> <td>120</td></tr>
<tr> <td>23</td> <td>Секретарь кафедры<br> физики </td> <td>Фролов Ю.Б</td> <td>60</td></tr>
</table>
<a href="javascript:f()">Отсортировать таблицу по площади и № аудиторий</a>
</body>
<script type="text/javascript">
function zap(a,n,p,c)
{
console.log(a,n,p,c)
this.artik=a;
this.name=n;
this.proiz=p;
this.ctoem=c;
}
function q(c,b)
{
if (c.name>b.name) return -1;
else if (c.name>b.name) return 1;
else if (c.ctoem<b.ctoem) return -1;
else if (c.ctoem>b.ctoem) return 1;
else return 0;
}
function f()
{
var laba=[];
var tab=document.getElementById("tab");
var rowEl=tab.getElementsByTagName("tr")
for (var i=2; i<rowEl.length; i++)
{
var colEl=rowEl[i].getElementsByTagName("td");
console.log(colEl)
laba [i-2]=new zap (colEl[0].innerHTML,colEl[1].innerHTML,colEl[2].innerHTML,colEl[3].innerHTML);
}
laba.sort (q);
for(var i=2; i<rowEl.length; i++)
{
colEl=rowEl[i].getElementsByTagName("td");
with(laba[i-2])
{
colEl[0].innerHTML=artik;
colEl[1].innerHTML=name;
colEl[2].innerHTML=proiz;
colEl[3].innerHTML=ctoem;
}
}
}
</script>
|
Спасибо, но вроде все получилось у меня вот:
<head>
<meta htpp-equiv="content-type"content="text/css; charset=winddows-1251">
</head>
<script type="text/javascript">
function zap(a,n,p,c)
{
console.log(a,n,p,c)
this.artik=a;
this.name=n;
this.proiz=p;
this.ctoem=c;
}
function q(c,b)
{
if (c.ctoem>b.ctoem) return 1;
else if (c.ctoem<b.ctoem) return -1;
else if (c.artik>b.artik) return 1;
else if (c.artik>b.artik) return -1;
else return 0;
}
function f()
{
var laba=[];
var tab=document.getElementById("tab");
var rowEl=tab.getElementsByTagName("tr")
for (var i=2; i<rowEl.length; i++)
{
var colEl=rowEl[i].getElementsByTagName("td");
console.log(colEl)
laba [i-2]=new zap (colEl[0].innerHTML,colEl[1].innerHTML,colEl[2].innerHTML,colEl[3].innerHTML);
}
laba.sort (q);
for(var i=2; i<rowEl.length; i++)
{
colEl=rowEl[i].getElementsByTagName("td");
with(laba[i-2])
{
colEl[0].innerHTML=artik;
colEl[1].innerHTML=name;
colEl[2].innerHTML=proiz;
colEl[3].innerHTML=ctoem;
}
}
}
</script>
<body>
<table id="tab" border="1" align="center">
<caption><b> Аудитории </b></caption>
<tr><th rowspan="2"> Артикул </th>
<th colspan="2"> Отвественный за аудитории </th>
<th rowspan="2"> Площадь аудитории <br> кв.м </th></tr>
<tr><td>Должность</td><td>ФИО работника</td></tr>
<tr> <td>12</td> <td>Зав. кафедрой<br> информатики </td> <td>Сидоров И.С.</td> <td>60</td></tr>
<tr> <td>22</td> <td>Зав. кафедрой<br>прочности л.а. </td> <td>Хазанов Х.С.</td> <td>30</td></tr>
<tr> <td>9</td> <td>Зав. кафедрой<br> менеджмента</td> <td>Федоров Ю.В.</td> <td>120</td></tr>
<tr> <td>45</td> <td>Секретарь кафедры<br> ин. языков</td> <td>Карамзина Л.Л.</td> <td>30</td></tr>
<tr> <td>18</td> <td>Секретарь кафедры<br> прочности л.а.</td> <td>Толстоусов П.Л.</td> <td>120</td></tr>
<tr> <td>23</td> <td>Секретарь кафедры<br> физики </td> <td>Фролов Ю.Б</td> <td>60</td></tr>
</table>
<a href="javascript:f()">Отсортировать таблицу по площади и № аудиторий</a>
</body>
|
Цитата:
|
Mahylik,
<!DOCTYPE HTML>
<HTML>
<head>
<meta charset="utf-8">
</head>
<body>
<table id="tab" border="1" align="center">
<caption><b> Аудитории </b></caption>
<tr><th rowspan="2"> Артикул </th>
<th colspan="2"> Отвественный за аудитории </th>
<th rowspan="2"> Площадь аудитории <br> кв.м </th></tr>
<tr><td>Должность</td><td>ФИО работника</td></tr>
<tr> <td>12</td> <td>Зав. кафедрой<br> информатики </td> <td>Сидоров И.С.</td> <td>60</td></tr>
<tr> <td>22</td> <td>Зав. кафедрой<br>прочности л.а. </td> <td>Хазанов Х.С.</td> <td>30</td></tr>
<tr> <td>9</td> <td>Зав. кафедрой<br> менеджмента</td> <td>Федоров Ю.В.</td> <td>120</td></tr>
<tr> <td>45</td> <td>Секретарь кафедры<br> ин. языков</td> <td>Карамзина Л.Л.</td> <td>30</td></tr>
<tr> <td>18</td> <td>Секретарь кафедры<br> прочности л.а.</td> <td>Толстоусов П.Л.</td> <td>120</td></tr>
<tr> <td>23</td> <td>Секретарь кафедры<br> физики </td> <td>Фролов Ю.Б</td> <td>60</td></tr>
</table>
<a href="javascript:f()">Отсортировать таблицу по площади и № аудиторий</a>
</body>
<script type="text/javascript">
function f() {
for (var d = document.querySelector("#tab"), a = document.querySelectorAll("#tab tr:nth-child(n + 3)"), a = Array.prototype.map.call(a, function(b) {
return b
}).sort(function(b, a) {
return +b.cells[3].innerHTML - +a.cells[3].innerHTML || +b.cells[0].innerHTML - +a.cells[0].innerHTML
}), c; c = a.shift();) d.appendChild(c)
};
</script>
</html>
|
Цитата:
Спасибо за помощь!!!:thanks: :thanks: |
| Часовой пояс GMT +3, время: 22:52. |