Создайте новую переменную JavaScript, комбинируя строку и переменную - PullRequest
0 голосов
/ 12 февраля 2011

Так что это моя проблема.

pageTitle1 = ('This is page one');
pageTitle2 = ('This is page two');
pageTitle3 = ('This is page three');

currentPageTitle = ('pageTitle'+currentPosition);

$("#pageNumber").html(currentPageTitle);

Я пытаюсь отобразить заголовок текущей страницы на экране, основываясь на текущей позиции слайда, на котором я нахожусь. Проблема, с которой я столкнулся, заключается в том, что приведенный выше код отображает «pageTitle1» на экране, когда мне нужно отобразить «Это первая страница». Я новичок в javascript, так что я чувствую, что это легко исправить, но дни поисков в Google ничего не дали.

Ответы [ 3 ]

5 голосов
/ 12 февраля 2011

Используйте массив вместо именования каждой переменной в отдельности.

var pageTitles = [
 'This is page one',
 'This is page two',
 'This is page three'
];

var currentPageTitle = pageTitles[currentPosition];

Причина, по которой ваш код не работает, заключается в том, что он просто добавляет две строки "pageTitle" и currentPosition и присваивает объединенную строку currentPageTitle. Вместо этого вы хотите получить значение, хранящееся в переменной, имеющей это имя. Предполагая, что вы создаете их в глобальной области видимости (что не очень хорошо, между прочим), вы можете сделать:

var currentPageTitle = window['pageTitle'+currentPosition];

Однако лучше использовать массив.

1 голос
/ 12 февраля 2011

Сделай что-нибудь подобное.

var pageTitle = new Array();
pageTitle.push('This is page one');
pageTitle.push('This is page two');
pageTitle.push('This is page three');

currentPageTitle = (pageTitle[currentPosition]);
$("#pageNumber").html(currentPageTitle);

Или просто используйте eval ( действительно супер не рекомендуется )

var currentPageTitle = eval('pageTitle'+currentPosition);
0 голосов
/ 12 февраля 2011

Без каких-либо других модификаций вы можете заменить эту строку

currentPageTitle = ('pageTitle'+currentPosition);

на:

currentPageTitle = window['pageTitle'+currentPosition];
...