jQuery:为ID + Variable设置css background-color

时间:2011-11-09 14:59:25

标签: javascript jquery css variables

我正在尝试为ID + Variable设置背景颜色,但我无法弄明白。必须有一些我不知道的小东西。

这就是我所拥有的:

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

此提醒: item1

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

此提醒:#item1

到目前为止一切顺利。现在,我正在尝试更改该ID的背景。 所以:

这有效:

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

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

所有功能都相同。

我做错了什么?

非常感谢

5 个答案:

答案 0 :(得分:3)

如果你试试这个,它有用吗?

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

答案 1 :(得分:2)

我看到你的代码无效的唯一原因是你传递给jQuery的值(即cde或“#”+ abc)不是“String”类型。

你可以为此做一些测试:

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

如果类型不是字符串,那么您可以简单地执行:

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

答案 2 :(得分:0)

EDITED: 如何将它强制为像这样的字符串?

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

答案 3 :(得分:0)

不使用alert(),而是使用console.log()

alert()习惯在对象上自动调用.toString(),并且还会展平数组。

我预计发生的事情是你的变量abc实际上不是一个字符串,所以你可能得到的结果是:

'#' + abc.toString()

答案 4 :(得分:-2)

document.getElementById('item1').style.backgroundColor='black';

总是有效!