Попытка объединить 2 переменные для одного вывода (jquery)

0

Я пытаюсь отобразить 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
});

Есть лучший способ сделать это?

  • 1
    note никогда не инициализируется значением
Теги:

4 ответа

1
Лучший ответ

Вы можете использовать глобальный объект окна, чтобы сделать это легко:

$(".service-offered").html(window['note'+rnumber]);

Пример jsFiddle

  • 0
    Это было прекрасно! даже не уверен, как это работает иначе, чем я пытался сделать, но потрясающе!
  • 0
    В вашем коде note обрабатывалось как переменная, а не строка, но более того, оно не использовало объект окна.
4

как насчет использования массива?

var notes = ["boo", "quack", "bark", "meow", "moo"];

И затем, чтобы получить случайную ноту:

$(".service-offered").html(notes[rnumber]);
1

Это не будет работать, поскольку это интерпретируется как расчет или строковая привязка. Попробуйте поместить сообщения в массив, а затем вызовите элемент этого массива случайным ключом. Пример следует...

Ну, уже есть примеры :)

0

Сделайте заметки в массив

var notes = [
    "boo",
    "quack",
    "bark",
    "meow",
    "moo"
];

Затем произвольно выберите элемент

$sel.html(notes[Math.floor(Math.random() * notes.length]));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню