Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   сортировка по алфавиту (https://javascript.ru/forum/misc/1577-sortirovka-po-alfavitu.html)

mixa 16.08.2008 18:11

сортировка по алфавиту
 
Привет.Я хожу на курсы по JavaScript.Задали домашку: В первом примере (на swapNode()) мы просто меняем два элемента местами. Давайте немного усложним задание. Организуйте сортировку списка по алфавиту. Да, вроде бы короткая формулировка задания, но над ним придётся немного подумать.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <HEAD>
		<meta http-equiv="Content-Type" content="text/html; charset=КОИ8-Р">
        <META name="keywords" content=""> 
		<meta name="description" content="">
        <META name="author" content="Тетерин Роман Юрьевич"> 
		
        <title>Примерчик</title>
		<script type="text/javascript">
		<!--  Ваш броузер не поддерживает javascript !   
			window.resizeTo(screen.availWidth,screen.availHeight);
			
			function func()
			{
				var ul=document.getElementById('ul-1');
				var li0=ul.childNodes[0];
				var li1=ul.childNodes[1];
				li0.swapNode(li1);
				li2.swapNode(li1);
			}
		//-->	
		</script>
    </HEAD>
	<body>
		<ul id="ul-1">
			<li>Первый элемент</li>
			<li>Второй элемент</li>
			<li>Третий элемент</li>
		</ul>

		<button onclick="func()" >
			Поменять элементы местами
		</button>

		<script type="text/javascript">
		<!--  Ваш броузер не поддерживает javascript !   
			
		//-->	
		</script>
	</body>
</html>


Помогите кто может !!!

ZoNT 16.08.2008 20:35

Сначала мы будем за тебя домашку делать, а потом за тебя работу делать???

Нет уж...
До чего же люди офигели все. Уже учиться сами не хотят...

Kolyaj 16.08.2008 20:47

Странные у вас курсы, таким вещам не на JavaScript надо учиться. Хотя бы потому, что в JavaScript есть стандартная функция сортировки. Если хотите научиться основам программирования, учите Си.

Андрей Параничев 16.08.2008 21:40

mixa,
Почитайте в интернете про сортировку "пузырьком", если понять принцип её работы, то вы легко отсортируете этот список, используя вместо элементов массива - nodeList.

Kolyaj 16.08.2008 21:58

Цитата:

Сообщение от Андрей Параничев
Почитайте в интернете про сортировку "пузырьком"

Дональд Кнут "Искусство программирования", том 3, "Поиск и сортировка" :)

Цитата:

Сообщение от mixa
<!-- Ваш броузер не поддерживает javascript !

Зачем эта фраза? Пользователи ее никогда не увидят.

jeka 16.08.2008 22:59

Цитата:

Сообщение от Kolyaj (Сообщение 4661)
Дональд Кнут "Искусство программирования", том 3, "Поиск и сортировка" :)


Зачем эта фраза? Пользователи ее никогда не увидят.

_______________________________________________
На даный момент еще есть броузеры не поддерживающие скриптов, и весь код скрипта в них выводится на экран в виде текста и или вдруг отключена функция. Чтобы этого не происходило рекомендуется весь код скрипта размещать между коментариями HTML - "<!-- //-->". Броузеры, которые понимают скрипт, коментарии просто игнорируют

mixa 16.08.2008 23:02

Я с этим примером долго уже долбусь, вот прошу помочь как сделать,а не ....!!!

Андрей Параничев 16.08.2008 23:16

mixa,
А не что? Поаккуратнее с выражениями.
Вот пример сортировки пузырьком, но он работает только в IE.
<script>
function func()
{
    var ul  = document.getElementById('ul-1');
    var num = ul.childNodes.length;
    for(var i = num-1; i > 0; i--)
    {
       for(var j = 0 ; j < i ; j++)
        {
            if( ul.childNodes[j].innerHTML > ul.childNodes[j+1].innerHTML ) {
		        ul.childNodes[j].swapNode(ul.childNodes[j+1]);
			}
        }
    }
}
</script>
<body>
	<ul id="ul-1">
            <li>Б. Первый элемент</li>
            <li>В. Второй элемент</li>
            <li>А. Третий элемент</li>
            <li>Р. Третий элемент</li>
            <li>С. Третий элемент</li>
            <li>Ц. Третий элемент</li>
            <li>П. Третий элемент</li>
    </ul>
	<button onclick="func()" >
        Отсортировать элементы
    </button>
</body>

Kolyaj 16.08.2008 23:48

jeka, прочитайте вопрос повнимательнее, я не спрашивал, зачем комментарий.

mixa 17.08.2008 08:43

огромное спасибо!!!


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