Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.10.2018, 10:48
Интересующийся
Отправить личное сообщение для Роман1479 Посмотреть профиль Найти все сообщения от Роман1479
 
Регистрация: 06.10.2017
Сообщений: 24

Объяснить что происходит
Помогите пожалуйста перевести в обычный вид ( в обычный javascript или объяснить ) ничего не понимаю что здесь происходит, но работает
<table cellpadding="7" align="center">
 	<tr><th onclick="sort_age();">SORT AGE</th></tr>
	 <tbody id="table1">
		 <tr><td>28</td></tr>
		 <tr><td>36</td></tr>
		 <tr><td>21</td></tr>
		 <tr><td>34</td></tr>
		 <tr><td>14</td></tr>
		 <tr><td>24</td></tr>
	 </tbody>
</table>

function sort_age() {
 	var tbody = $('#table1'); // берем таблицу

	 	tbody.find('tr').sort(function(a, b){ 
			 	return $('td:last', a).text().localeCompare($('td:last', b).text());
		}).appendTo(tbody);
}


Прошу объяснить функцию в js, и если не трудно написать её для более менее новичков, спасибо большое буду благодарен

Последний раз редактировалось Роман1479, 29.10.2018 в 10:56.
Ответить с цитированием
  #2 (permalink)  
Старый 29.10.2018, 12:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Роман1479
Прошу объяснить функцию в js
https://javascript.ru/array/sort

Про localeCompare() смотри тут
https://msdn.microsoft.com/ru-ru/lib...(v=vs.94).aspx
https://javascript.ru/String

Последний раз редактировалось ksa, 29.10.2018 в 12:17.
Ответить с цитированием
  #3 (permalink)  
Старый 29.10.2018, 12:51
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

И еще - в данном конкретном случае лишнее 'td:last', т.к. в каждой строке по одной ячейке.
Ответить с цитированием
  #4 (permalink)  
Старый 29.10.2018, 14:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от Роман1479
но работает
если нужно сортировать числа, то не работает!!!
вариант для сортровки чисел
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>

<body>
<table cellpadding="7" align="center">
 	<tr><th onclick="sort_age();">SORT AGE</th></tr>
	 <tbody id="table1">
		 <tr><td>8</td></tr>
		 <tr><td>36</td></tr>
		 <tr><td>21</td></tr>
		 <tr><td>34</td></tr>
		 <tr><td>14</td></tr>
		 <tr><td>24</td></tr>
	 </tbody>
</table>
  <script>
     function sort_age() {
 	var tbody = $('#table1'); // берем таблицу

	 	tbody.find('tr').sort(function(a, b){
			 	return $(a).text() - $(b).text();
		}).appendTo(tbody);
}

  </script>
</body>
</html>

Последний раз редактировалось рони, 29.10.2018 в 14:14.
Ответить с цитированием
  #5 (permalink)  
Старый 29.10.2018, 14:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

сортировка чисел с localeCompare
Роман1479,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>

<body>
<table cellpadding="7" align="center">
 	<tr><th onclick="sort_age();">SORT AGE</th></tr>
	 <tbody id="table1">
		 <tr><td>8</td></tr>
		 <tr><td>36</td></tr>
		 <tr><td>21</td></tr>
		 <tr><td>34</td></tr>
		 <tr><td>14</td></tr>
		 <tr><td>24</td></tr>
	 </tbody>
</table>
  <script>
function sort_age() {
 	var tbody = $('#table1'); // берем таблицу

	 	tbody.find('tr').sort(function(a, b){
			 	return $('td:last', a).text().localeCompare($('td:last', b).text(), "ru", {numeric : true});
		}).appendTo(tbody);
}

  </script>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что происходит с переменной? kokacolla Общие вопросы Javascript 5 07.06.2013 09:15
как получить тот кусок текста который сейчас видно на экране ? mitiya Общие вопросы Javascript 27 21.03.2013 12:21
Поюзайте хомячка Nanto Ваши сайты и скрипты 30 06.06.2011 22:16
Что происходит при fadeOut() ? Триви jQuery 3 21.03.2011 15:26
submit в iframe по событию change vovasvv jQuery 1 21.05.2010 09:37