Как упорядочить несколько тегов одновременно
Добрый вечер! Почитал многое про то как упорядочить теги всеми возможными способами, но не нашел ответа( .
Мне нужно, что бы при загрузке страницы все имена шли в алфавитном порядке А-Я и при этом когда человек наведет курсор на имя , href соответствовала именно этому выбору. За ранее благодарен. Спасибо. <div id='box'> <div id='d'><a href="1.php">Вася</a></div> <div id='d'><a href="2.php">Аня</a></div> <div id='d'><a href="3.php">Вова</a></div> <div id='d'><a href="4.php">Боря</a></div> </div> |
son313,
а что такое id? |
разбирайся
http://james.padolsey.com/javascript...s-with-jquery/ <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script> <div id='box'> <div id='d'><a href="1.php">Вася</a></div> <div id='d'><a href="2.php">Аня</a></div> <div id='d'><a href="3.php">Вова</a></div> <div id='d'><a href="4.php">Боря</a></div> </div> <button>click</button> <script> /** * jQuery.fn.sortElements * -------------- * @param Function comparator: * Exactly the same behaviour as [1,2,3].sort(comparator) * * @param Function getSortable * A function that should return the element that is * to be sorted. The comparator will run on the * current collection, but you may want the actual * resulting sort to occur on a parent or another * associated element. * * E.g. $('td').sortElements(comparator, function(){ * return this.parentNode; * }) * * The <td>'s parent (<tr>) will be sorted instead * of the <td> itself. */ jQuery.fn.sortElements = (function(){ var sort = [].sort; return function(comparator, getSortable) { getSortable = getSortable || function(){return this;}; var placements = this.map(function(){ var sortElement = getSortable.call(this), parentNode = sortElement.parentNode, // Since the element itself will change position, we have // to have some way of storing its original position in // the DOM. The easiest way is to have a 'flag' node: nextSibling = parentNode.insertBefore( document.createTextNode(''), sortElement.nextSibling ); return function() { if (parentNode === this) { throw new Error( "You can't sort elements if any one is a descendant of another." ); } // Insert before flag: parentNode.insertBefore(this, nextSibling); // Remove flag: parentNode.removeChild(nextSibling); }; }); return sort.call(this, comparator).each(function(i){ placements[i].call(getSortable.call(this)); }); }; })(); $("button").on("click", function () { $('#box div').sortElements(function(a, b){ return $(a).text() > $(b).text() ? 1 : -1; }); }); </script> |
:write:
сортировка div по содержимому <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script> $(window).load(function () { var c = jQuery.makeArray($("#box div")); c.sort(function (a, b) { a = $(a).text(); b = $(b).text(); return a < b ? -1 : a > b ? 1 : 0 }); $(c).appendTo("#box") }); </script> </head> <body> <div id='box'> <div><a href="1.php">Вася</a></div> <div><a href="2.php">Аня</a></div> <div><a href="3.php">Вова</a></div> <div><a href="4.php">Боря</a></div> </div> </body> </html> |
как ни крути, в итоге всё сводится к сортировке массива, а это основы :)
|
Цитата:
|
Цитата:
|
Ну так либо
var nodeList = document.querySelectorAll('#danik.js'); var array = Array.prototype.slice.call(nodeList); либо сразу Array.prototype.sort.call(nodeList, ... А прогонять через фильтр ради того чтобы получить массив - это как-то .. |
Вопрос не по теме, но все же. Ни кто не знает что за фигня в IE 8 и как с ней бороться. Добавляю в корзину товар через куки. Потом захожу в корзину, в которой уже из куки php выбирает значения и выводит результат. Пока не обновишь страницу, результата нет никакого. При этом можно по всему сайту бегать. Я имею ввиду переходить по разным ссылкам, а потом опять войти в корзину и там то же самое, пока не перегрузишь страницу. В мозиле и опере все идеально работает, а вот с этим дерьмом вечный гемор..... Закрыл браузер, открыл, зашел в корзину, то же самое. Перезагрузил страницу, все отобразилось. Ну что за хер_ня.
|
Проблему решил, но жаль что эти настройки не стоят по умолчанию.
Во общем: Сервис/Свойство обозревателя/Общие/Параметры/Проверять наличие обновленных страниц автоматически, поставить галочку. |
Часовой пояс GMT +3, время: 18:00. |