2014-10-13 5 views
2

Это работает:Почему моя переменная JavaScript не работает?

$('.sameDiv').css('width', '25%'); 

Но это вовсе не так:

var squaresize = 25; 
$('.sameDiv').css('width', 'squaresize%'); 

Кроме того, я пытался сделать это с символом процента как части переменной и это не помогает.

+2

Что заставило вас думать, что JavaScript заменит имена переменных в строках? Учитывая 'var foo = 42;' вы считали, что 'var bar = 'foobar';' будет превращен в '42bar''? –

+1

Возможный дубликат [JavaScript, добавляющий строку в число] (http://stackoverflow.com/questions/16522648/javascript-adding-a-string-to-a-number) – ProllyGeek

+0

Для вещей, которые JQuery + Javascript, это часто лучше использовать JQuery в названии вместо Javascript, чтобы заставить правильных людей ответить. –

ответ

6
$('.sameDiv').css('width', 'squaresize%'); 

должны стать

$('.sameDiv').css('width', squaresize + '%'); 

Я не проверял, но если вы просто положить «squaresize%» не будет пытаться ссылаться на него ... вернее, просто читать его прямо как литерал строка, вычисляемая "squaresize%" вместо 25%

+0

Пожалуйста, заверните '.sameDiv' в строковых разделителях ... – Bergi

+0

@Bergi done, ty :) –

1

Ваш код должен быть как:

var squaresize = 25; 

$(".sameDiv").css('width', squaresize+'%'); 

Ваше имя переменной я s "квадратизировать". Знание того, что при добавлении строки в целое число также приведет к созданию строки, нет необходимости преобразовывать целое число в строку. Просто добавьте «%» к вашему значению переменной.

С помощью одной кавычки вы устанавливаете css для значения «квадрат%» в качестве статического значения.

+1

Пожалуйста, не публикуйте решения, но объясните, почему! –

+1

Пожалуйста, не спускайте вниз, если решение не так. – ProllyGeek

+0

@MichaelVoznesensky, но вы правы в отношении объяснения. – ProllyGeek

Смежные вопросы