Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Преобразование переменной (https://javascript.ru/forum/jquery/8354-preobrazovanie-peremennojj.html)

doniv 21.03.2010 07:22

Преобразование переменной
 
Уж не знаю, правильно назвал или нет...
Суть такая, есть переменный

var lbox1 = "security";
var lbox2 = "automat";


Есть переменная которая отвечает за добавочное число, назовем ее rundomtrololo.

Есть

url: 'textsec/'вот тут должна получаться переменная(lbox+rundomtrololo)'.html',


Как мне сделать, чтобы данная сумма являлась нужной мне переменной?

Riim 21.03.2010 07:37

window['lbox' + num];

doniv 21.03.2010 07:49

Цитата:

Сообщение от Riim (Сообщение 48430)
window['lbox' + num];

Если честно, то совсем не понятно.
А так как непонятно, попробовал наугад и эпик фэил.
Если вам не сложно, поясните пожалуйста.

Riim 21.03.2010 07:59

url: 'textsec/' + window['lbox' + rundomtrololo] + '.html',

?

doniv 21.03.2010 08:07

Цитата:

Сообщение от Riim (Сообщение 48434)
url: 'textsec/' + window['lbox' + rundomtrololo] + '.html',

?

Ну да, так и написал. Но что-то не так:)

Вот весь скрипт

$(document).ready(function(){	
var testNumber = Math.floor( Math.random( ) * (2 - 1 + 1) ) + 1;
		var linkclass = $('.inlink a#security');
		var dbox = $(".text-sec");
		var lbox1 = "security";
		var lbox2 = "automat";

		$.ajax({
			url: 'textsec/'+window['lbox' + testNumber]+'.html',
			beforeSend: function(){
			dbox.addClass('loading');
		},
		success: function(boxtext){
			dbox.append(boxtext);
			dbox.removeClass('loading');
			dbox.html();
			linkclass.addClass('active');
                    }
                });
});

Riim 21.03.2010 08:31

Выводите alert-ами разные переменные, смотрите то ли в них, что должно быть, есть специальные инструменты для отладки: http://javascript.ru/tools/development

doniv 21.03.2010 08:39

Все выводит как положено и то что нужно. Вот только если писать
alert(window['lbox' + testNumber]);
выводит undefined

А если так
alert(['lbox' + testNumber]);
, то выводит нужные данные. Но если я правильно понимаю, то это уже не является переменной.

Riim 21.03.2010 08:50

Цитата:

Сообщение от doniv
выводит undefined

все верно, мы же переменные внутри функции определили, а ищем их зачем-то в window (мой косяк), так как внутри функции нет конкретной переменной, в которой лежит то, что было определено, значит используем eval, либо создаем такую переменную:

var a = function() {
	var x1 = 5;
	var x2 = 10;
	var num = 1;
	alert(eval('x' + num));
};
a();

var b = function() {
	var ob = {
		x1: 5,
		x2: 10
	};
	var num = 1;
	alert(ob['x' + num]);
};
b();

sysya 21.03.2010 10:06

а так низя url: 'textsec/lbox' +testNumber+ '.html',

Riim 21.03.2010 10:50

Цитата:

Сообщение от sysya
а так низя url: 'textsec/lbox' +testNumber+ '.html',

нужно значение переменной, а не ее имя:
Цитата:

Сообщение от doniv
var lbox1 = "security";
var lbox2 = "automat";



Часовой пояс GMT +3, время: 08:12.