我正在尝试为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');
所有功能都相同。
我做错了什么?
非常感谢
答案 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';
总是有效!