jQuery: установить цвет фона CSS для идентификатора + переменная - PullRequest
1 голос
/ 09 ноября 2011

Я пытаюсь установить цвет фона для идентификатора + переменной, но не могу понять.Должно быть что-то очень маленькое, о чем я не знаю.

Вот что у меня есть:

var abc = $dialog.data( "url" );
alert(abc)

Это оповещения: item1

var cde = '#' + abc
alert(cde)

Это оповещения: # item1

Пока все хорошо.Теперь я пытаюсь изменить фон для этого идентификатора.Итак:

Это работает:

$(body).css('background-color', 'black');

Это не :

cde.css('background-color', 'black');
$(cde).css('background-color', 'black');
$("#" + abc).css('background-color', 'black');

Все в одной функции.

Что я не так делаю?

Спасибо большое

Ответы [ 5 ]

3 голосов
/ 09 ноября 2011

Если вы попробуете это, это сработает?

$('#item1').css('background-color', 'black');
2 голосов
/ 09 ноября 2011

Единственная причина, по которой я вижу, что ваш код не работает, заключается в том, что значение, которое вы передаете jQuery (а именно, cde или "#" + abc), не относится к типу "String".

Вы можете сделать тест для этого:

var test = "#item1";
alert(test === cde);
alert(typeof(cde));

Если тип не строковый, то вы можете просто сделать:

$(cde.toString()).css('background-color', 'black');
0 голосов
/ 10 ноября 2011
document.getElementById('item1').style.backgroundColor='black';

это всегда работает!

0 голосов
/ 09 ноября 2011

Вместо использования alert() используйте console.log().

alert() имеет привычку автоматически вызывать .toString() для объектов, а также выравнивать массивы.

Я ожидаю, чтопроисходит то, что ваша переменная abc на самом деле не является строкой, поэтому то, что вы, вероятно, имеете, является результатом:

'#' + abc.toString()
0 голосов
/ 09 ноября 2011

Редакция: Как насчет принудительного ввода такой строки?

$("" + cde).css('background-color', 'black');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...