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, время: 03:38. |