|
Разброс блоков в рандом порядке.
Вложений: 1
Всем привет, это снова я, с бесконемным числом вопросов :D
Сейчас вот что требуется: Разбросать блоки в рандом порядке. снова работаю над плейером... например парент у нас id='music' а каждый в нем tr - это трек. http://javascript.ru/forum/attachmen...d=132600723 3 например иходный текст: <table id='music'> <tr id='1'>...</tr> <tr id='2'>...</tr> <tr id='3'>...</tr> <tr id='4'>...</tr> <tr id='5'>...</tr> <tr id='6'>...</tr> <tr id='7'>...</tr> </table> а что должно получится: <table id='music'> <tr id='2'>...</tr> <tr id='5'>...</tr> <tr id='7'>...</tr> <tr id='1'>...</tr> <tr id='3'>...</tr> <tr id='4'>...</tr> <tr id='6'>...</tr> </table> тоесть порядок рандомный. и желательно чтобы innerHTML у этих tr не трогался, дабы не портить содержим ///////////////////////////////////////// и еще вот попрос. по этой же теме, но другой. как получить рандомный блок, например для его редактирования, если есть парент, например id='music' как выше. ///////// PS сразу говорю - о гет запросе с построением в рандом порядке уже думал, не подходит. Заранее благодарен за поддержку, благодарен не на словах |
<table id='music'> <tr id='1'><td>1</td></tr> <tr id='2'><td>2</td></tr> <tr id='3'><td>3</td></tr> <tr id='4'><td>4</td></tr> <tr id='5'><td>5</td></tr> <tr id='6'><td>6</td></tr> <tr id='7'><td>7</td></tr> </table> <script> var table=document.getElementById('music'), tr=table.getElementsByTagName('tr'), i=tr.length; table=tr[0].parentNode; //ибо tbody итп while(i--) Math.random()<.5 ? table.appendChild(tr[i]) : table.insertBefore( tr[i], table.firstChild ); </script> |
;) отлично, давай wmr кошелек
|
а что если усложнить задачу, и список постраивается у меня вот так:
<table id='music'> <tr id='1'><td>1</td></tr> <tr id='p1'><td>1</td></tr> <tr id='2'><td>2</td></tr> <tr id='p2'><td>2</td></tr> <tr id='3'><td>3</td></tr> <tr id='p3'><td>3</td></tr> <tr id='4'><td>4</td></tr> <tr id='p4'><td>4</td></tr> <tr id='5'><td>5</td></tr> <tr id='p5'><td>5</td></tr> <tr id='6'><td>6</td></tr> <tr id='p6'><td>6</td></tr> <tr id='7'><td>7</td></tr> <tr id='p7'><td>7</td></tr> </table> и список надо построить вот так: <table id='music'> <tr id='6'><td>6</td></tr> <tr id='p6'><td>6</td></tr> <tr id='4'><td>4</td></tr> <tr id='p4'><td>4</td></tr> <tr id='2'><td>2</td></tr> <tr id='p2'><td>2</td></tr> <tr id='3'><td>3</td></tr> <tr id='p3'><td>3</td></tr> <tr id='5'><td>5</td></tr> <tr id='p5'><td>5</td></tr> <tr id='7'><td>7</td></tr> <tr id='p7'><td>7</td></tr> <tr id='1'><td>1</td></tr> <tr id='p1'><td>1</td></tr> </table> (в рандомном порядке, но рядом с ним должен быть блок p[число] |
imposible?
|
Да нет, я просто на работе какбэ)
<table id='music'> <tr><td>1</td></tr> <tr><td>к1</td></tr> <tr><td>2</td></tr> <tr><td>к2</td></tr> <tr><td>3</td></tr> <tr><td>к3</td></tr> <tr><td>4</td></tr> <tr><td>к4</td></tr> <tr><td>5</td></tr> <tr><td>к5</td></tr> <tr><td>6</td></tr> <tr><td>к6</td></tr> <tr><td>7</td></tr> <tr><td>к7</td></tr> </table> <script> (function(){ var rand, table=document.getElementById('music'), tr=[].slice.call(table.getElementsByTagName('tr')), i=tr.length; table=tr[0].parentNode; //ибо tbody итп while(i--){ if(i%2) rand = Math.random()<.5; table.insertBefore( tr[i], rand ? table.firstChild : i%2 ? null : table.lastChild ) } })() </script> R117571207359 |
очень благодарен. скидываю бонусик 300 вмр, надеюсь не мало :)
буду признателен если аську оставишь, у меня много работы есть для профи =3 |
эх, только всеравно рано или позно глюк происходит. наверно надо обнулять переменную. сейчас попробую
|
тоесть если функцию выполнять раз 5-6 то они не ровно стоят. тоесть например
1 к1 2 к3 |
аа, кстати как еще сделать чтобы абсолютно весь список рандомно перевернулся?
|
Часовой пояс GMT +3, время: 18:54. |
|