Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.06.2015, 19:25
Новичок на форуме
Отправить личное сообщение для Mahylik Посмотреть профиль Найти все сообщения от Mahylik
 
Регистрация: 18.02.2015
Сообщений: 4

javascript проблемы с сортировкой!
Код сортировка нужно сделать так чтобы сначала по Отсортировать таблицу по площади и № аудиторий. Не понимаю где я ошиблась(




<!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>
Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2015, 19:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Mahylik,
у вас строки для сортировки начитаются c i = 2, а не 1
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

иначе трудно сказать в какой строке ошибка
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2015, 19:50
Новичок на форуме
Отправить личное сообщение для Mahylik Посмотреть профиль Найти все сообщения от Mahylik
 
Регистрация: 18.02.2015
Сообщений: 4

Вот так ???

он начал сортировать но не по возрастанию(((



<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>
Ответить с цитированием
  #4 (permalink)  
Старый 04.06.2015, 20:18
Новичок на форуме
Отправить личное сообщение для Mahylik Посмотреть профиль Найти все сообщения от Mahylik
 
Регистрация: 18.02.2015
Сообщений: 4

Спасибо, но вроде все получилось у меня вот:


<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>
Ответить с цитированием
  #5 (permalink)  
Старый 04.06.2015, 20:29
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
laba.sort (q);
Что за пробел перед круглыми скобками?
Ответить с цитированием
  #6 (permalink)  
Старый 04.06.2015, 20:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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>
Ответить с цитированием
  #7 (permalink)  
Старый 05.06.2015, 11:51
Новичок на форуме
Отправить личное сообщение для Mahylik Посмотреть профиль Найти все сообщения от Mahylik
 
Регистрация: 18.02.2015
Сообщений: 4

Сообщение от рони Посмотреть сообщение
Mahylik,
<!DOCTYPE HTML>

 <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>
Буду надеяться что препод примет этот скрипт(((
Спасибо за помощь!!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы взаимодействия кода JavaScript и Opera shamannt Events/DOM/Window 5 19.12.2011 11:20
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Javascript PHP и Cookies проблемы с кодировкой cristalith Серверные языки и технологии 6 31.10.2009 11:12
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37