Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Сортировка DIV на "чистом" JavaScript (https://javascript.ru/forum/dom-window/58876-sortirovka-div-na-chistom-javascript.html)

Feuerman063 15.10.2015 11:53

Выдает JSON

laimas 15.10.2015 12:03

А если JSON, то нужно сначала его сортировать, и только затем выводить, это менее затратно, чем потом копаться в DOM. К тому же почитать об API, возможно что его запросы позволяют указывать параметры сортировки и возвращать уже отсортированное.

Feuerman063 15.10.2015 12:16

Понял, спасибо за советы. Почитаю еще об API.

рони 15.10.2015 12:27

сортировка div по содержимому js
 
Feuerman063,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
<div id="search">
	<div class="search-element">
		<div><a href="..."><img src="..."></a></div>
		<div><a href="...">Вася</a></div>
	</div>
	<div class="search-element">
		<div><a href="..."><img src="..."></a></div>
		<div><a href="...">Аня</a></div>
	</div>
	<div class="search-element">
		<div><a href="..."><img src="..."></a></div>
		<div><a href="...">Вова</a></div>
	</div>
	<div class="search-element">
		<div><a href="..."><img src="..."></a></div>
		<div><a href="...">Боря</a></div>
	</div>
</div>
<script type='text/javascript'>
var c = document.querySelector("#search");
Array.apply(null,c.querySelectorAll(".search-element"))
.sort(function(a, b) {
    a = a.querySelector("div:last-child > a").text;
    b = b.querySelector("div:last-child > a").text;
    return a < b ? -1 : a > b ? 1 : 0
})
.forEach(function(a) {
    c.appendChild(a)
});
</script>
</body>

</html>

вариант на jQuery тут http://javascript.ru/forum/jquery/39...tml#post259543

Feuerman063 15.10.2015 12:34

Цитата:

Сообщение от рони (Сообщение 392060)

А вам спасибо за рабочий вариант. Эту тему я как раз находил по jQuery.

FINoM 17.10.2015 14:10

рони, а зачем использовать map, если можно заюзать slice?
Цитата:

Сообщение от рони
= a.querySelector("div:last-child > a").text;

Что это за свойство такое? Почему не textContent?

рони 17.10.2015 23:12

Цитата:

Сообщение от FINoM
если можно заюзать slice?

можно :)
Цитата:

Сообщение от FINoM
Что это за свойство такое?

видимая часть ссылки, вроде всегда было :-?

FINoM 17.10.2015 23:14

Цитата:

Сообщение от рони
видимая часть ссылки, вроде всегда было

Работаю вроде давно, но этого не знал. Я бы запутался, честно говоря, не встретив такого свойства в другом элементе.

рони 17.10.2015 23:19

Цитата:

Сообщение от FINoM
Я бы запутался, честно говоря, не встретив такого свойства в другом элементе.

text есть ещё в option или я что-то неправильно понимаю?

FINoM 17.10.2015 23:28

Цитата:

Сообщение от рони
text есть ещё в option или я что-то неправильно понимаю?

Человек запомит, что текст можно извлечь с помощью свойства text, потом будет матюкаться, если его не найдет в диве. Лучше всегда использовать textContent. А такие древние API лучше не трогать.

Вот еще один пример древнего API:

alert('xxxx'.bold());


Часовой пояс GMT +3, время: 12:33.