03.01.2016, 17:08
|
Новичок на форуме
|
|
Регистрация: 03.01.2016
Сообщений: 3
|
|
Дополнить скрипт
Здравствуйте.
Помогите плиз дописать скрипт, чтобы в урле <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>
Последний раз редактировалось newuser123, 03.01.2016 в 18:45.
|
|
03.01.2016, 17:26
|
Новичок на форуме
|
|
Регистрация: 03.01.2016
Сообщений: 3
|
|
Вроде что-то нацарапал, не знаю это правильно.
<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>
Последний раз редактировалось newuser123, 03.01.2016 в 18:46.
|
|
03.01.2016, 17:57
|
Профессор
|
|
Регистрация: 30.12.2015
Сообщений: 194
|
|
а не проще массивы определять в цикле:
for (var i = 1, images = [], num = []; i <= 30; i += 1) {
images.push("images/thumb_" + i +".jpg");
num.push("" + i);
}
Последний раз редактировалось Keramet, 03.01.2016 в 18:05.
|
|
03.01.2016, 18:02
|
Профессор
|
|
Регистрация: 30.12.2015
Сообщений: 194
|
|
newuser123,
а какой смысл заложен в переменную cifr? Чем она отличается от num?
Последний раз редактировалось Keramet, 03.01.2016 в 18:05.
|
|
03.01.2016, 18:03
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
newuser123,
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
03.01.2016, 18:03
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
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>
|
|
03.01.2016, 18:11
|
Профессор
|
|
Регистрация: 30.12.2015
Сообщений: 194
|
|
рони,
При всём уважении - но это, по-моему, слишком заумно. Красиво - но заумно
Чем плох вариант ТС, если его малость доработать? Ну к примеру:
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, 03.01.2016 в 18:25.
|
|
03.01.2016, 18:28
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Keramet,
ок
|
|
03.01.2016, 18:36
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Сообщение от Keramet
|
а не проще массивы определять в цикле:
|
Зачем? Это лишнее.
Сообщение от Keramet
|
i += 1
|
Почему не i++?
Сообщение от Keramet
|
num.push("" + i);
|
Зачем кавычки?
|
|
03.01.2016, 18:55
|
Новичок на форуме
|
|
Регистрация: 03.01.2016
Сообщений: 3
|
|
Всем Большое спасибо за помощь, скрипт работает как надо использовал вариант доработки от Keramet.
|
|
|
|