Дополнить скрипт
Здравствуйте.
Помогите плиз дописать скрипт, чтобы в урле <a href='/user/random.html'> слово random заменялось на случайное число. Заранее благодарен за помощь. <script type="text/javascript"> var images = new Array( "images/thumb_1.jpg", "images/thumb_2.jpg", "images/thumb_3.jpg", "images/thumb_4.jpg" ); var img = images; for (var i = 0; i < 5; i++) { var a = Math.floor(Math.random() * img.length); document.write ("<div class='photo'><a href='/user/random.html'><img src ='"+img[a]+"' /></a><br><br></div>"); img.splice(a,1); }; </script> |
Вроде что-то нацарапал, не знаю это правильно.
<script type="text/javascript"> var images = new Array( "images/thumb_1.jpg", "images/thumb_2.jpg", "images/thumb_3.jpg", "images/thumb_4.jpg", "images/thumb_5.jpg", "images/thumb_6.jpg", "images/thumb_7.jpg", "images/thumb_8.jpg", "images/thumb_9.jpg", "images/thumb_10.jpg", "images/thumb_11.jpg", "images/thumb_12.jpg", "images/thumb_13.jpg", "images/thumb_14.jpg", "images/thumb_15.jpg", "images/thumb_16.jpg", "images/thumb_17.jpg", "images/thumb_18.jpg", "images/thumb_19.jpg", "images/thumb_20.jpg", "images/thumb_21.jpg", "images/thumb_22.jpg", "images/thumb_23.jpg", "images/thumb_24.jpg", "images/thumb_25.jpg", "images/thumb_26.jpg", "images/thumb_27.jpg", "images/thumb_28.jpg", "images/thumb_29.jpg", "images/thumb_30.jpg" ); var img = images; var num = new Array( "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30" ); var cifr = num; for (var i = 0; i < 5; i++) { var a = Math.floor(Math.random() * img.length); document.write ("<div class='photo'><a href='/user/"+cifr[a]+".html'><img src ='"+img[a]+"' /></a><br><br></div>"); img.splice(a,1); }; </script> |
а не проще массивы определять в цикле:
for (var i = 1, images = [], num = []; i <= 30; i += 1) { images.push("images/thumb_" + i +".jpg"); num.push("" + i); } |
newuser123,
а какой смысл заложен в переменную cifr? Чем она отличается от num? |
newuser123,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
newuser123,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script> Array.prototype.randomShuffle = function(c, b) { c = c || 0; b = ++b || this.length; var a = b - c; b = a - this.length; this.length = a--; for (; 0 <= a && !(a < b); a--) { var d = Math.floor(Math.random() * a), e = void 0 === this[d] ? d + c : this[d]; this[d] = void 0 === this[a] ? a + c : this[a]; this[a] = e } this.reverse(); this.length -= b; return this }; </script> </head> <body> <script> Array(5).randomShuffle(1,30).forEach(function(el) { document.write ("<div class='photo'><a href='/user/"+el+".html'><img src ='images/thumb_"+el+".jpg' /></a><br><br></div>"); }); </script> </body> </html> |
рони,
При всём уважении - но это, по-моему, слишком заумно. Красиво - но заумно :) Чем плох вариант ТС, если его малость доработать? Ну к примеру: for (var i = 1, num = []; i <= 30; i += 1) { num.push("" + i); } for (var i = 0; i < 5; i += 1) { var a = Math.floor(Math.random() * num.length); document.write ("<div class='photo'><a href='/user/" + num[a] + ".html'><img src ='images/thumb_" + num[a] + ".jpg' /></a><br><br></div>"); num.splice(a,1); }; |
Keramet,
ок |
Цитата:
Цитата:
Цитата:
|
Всем Большое спасибо за помощь, скрипт работает как надо использовал вариант доработки от Keramet.
|
Часовой пояс GMT +3, время: 23:27. |