Я пытаюсь отобразить 1 из 5 сообщений в случайном порядке. У меня все работает, кроме того, что я пытаюсь динамически вызывать переменную, комбинируя две другие переменные. Смотри ниже
var note1 = "boo";
var note2 = "quack";
var note3 = "bark";
var note4 = "meow";
var note5 = "moo";
//generate number between 1-5
var rnumber = 1 + Math.floor(Math.random() * 5);
var note;
$( ".site-notification" ).hide("slow", function(){
$(".service-offered").html(note+rnumber);//i want this to output the note1-5 content
});
Есть лучший способ сделать это?
Вы можете использовать глобальный объект окна, чтобы сделать это легко:
$(".service-offered").html(window['note'+rnumber]);
note
обрабатывалось как переменная, а не строка, но более того, оно не использовало объект окна.
как насчет использования массива?
var notes = ["boo", "quack", "bark", "meow", "moo"];
И затем, чтобы получить случайную ноту:
$(".service-offered").html(notes[rnumber]);
Это не будет работать, поскольку это интерпретируется как расчет или строковая привязка. Попробуйте поместить сообщения в массив, а затем вызовите элемент этого массива случайным ключом. Пример следует...
Ну, уже есть примеры :)
Сделайте заметки в массив
var notes = [
"boo",
"quack",
"bark",
"meow",
"moo"
];
Затем произвольно выберите элемент
$sel.html(notes[Math.floor(Math.random() * notes.length]));
note
никогда не инициализируется значением