Этим я отсортировал только текст, но ссылки остались на прежних местах. Как сделать чтобы текст ссылки соответствовал адресу ссылки после сортировки?
var x = $('ul li').length;
var mas = [];
var mas2 = [];
$('ul li').each(function( index ) {
mas[index] = $(this).text();
mas2[index] = $(this).find('a').attr('href');
});
mas.sort();
$( 'ul li' ).each(function( index ) {
$(this).find('a').text( mas[index]);
$(this).find('a').attr( 'href', mas2[index] );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><a href="h1">7</a></li>
<li><a href="h2">6</a></li>
<li><a href="h3">5</a></li>
<li><a href="h4">4</a></li>
<li><a href="h5">3</a></li>
<li><a href="h6">2</a></li>
<li><a href="h7">1</a></li>
</ul>
У метода сортировки есть параметр — функция сравнения, возвращающая строку, по которой алгоритм будет сравнивать элементы массива. В этом массиве содержатся потомки выбранного <ul>
— теги <li>
. Вставка отсортированной последовательности обратно на страничку производится присвоением свойству innerHTML разметки, составляющей наши отсортированные элементы. Это, кажется, самый простой способ замены содержимого какого-либо тега.
Код оказалось проще написать без применения jQuery, поэтому без неё.
var container = document.getElementById('cont');
var elements = [].slice.call(container.children);
elements.sort(el => el.textContent);
container.innerHTML = elements.map(el => el.outerHTML).join("");
<ul id="cont">
<li><a href="h1">7</a></li>
<li><a href="h2">6</a></li>
<li><a href="h3">5</a></li>
<li><a href="h4">4</a></li>
<li><a href="h5">3</a></li>
<li><a href="h6">2</a></li>
<li><a href="h7">1</a></li>
</ul>
Добрый день) Мне нужно выполнить эти задания что бы пройти собеседование в одной компаний, на первую работу) Вот задания:
Люди добрые, хочу просто получить удаленно файл по маске с сервера и сохранить к себе в папкуВсе, что перед
Как скрыть кнопку от всех, кроме пользователя, который находится в таблице users и имеет e-mail: igor@gmailcom Возможно такое реализовать? К примеру, такая...
На данный вопрос уже ответили: