有人知道为什么这不起作用吗?
$('#screen').css({
'background-image': [bg_num == 1 ? 'josh' : 'jessi'] + '_background.jpg',
'background-color': 'red'
});
背景颜色已设置,但图像尚未设置。
我还没有真正练习过在 Javascript 中使用方括号来完成这种事情。如果我做错了什么,有人有提示吗?或者没有很好的解释它们的用途?
编辑:为了清楚起见,检查本身实际上正在发生,因为如果我在 console.log() 中执行相同的操作,则输出“josh_background.jpg”就好了。它只是没有采用这个 css 设置功能。</p>
最佳答案
编辑:
您所做的是创建一个值为 'josh'
或 'jessi'
的数组文字,然后连接 '_background.jpg'
> 到它上面,这样它在技术上就可以工作。
问题是您缺少 background-image
值的 'url()'
部分。
'background-image': 'url(' + (bg_num == 1 ? 'josh' : 'jessi') + '_background.jpg)',
...但您仍然应该使用 ()
进行分组,而不是构造数组。
原始答案:
使用圆括号代替方括号进行分组:
'background-image': (bg_num == 1 ? 'josh' : 'jessi') + '_background.jpg',
方括号在 JavaScript 中的唯一用途是获取/设置对象的属性,或创建数组文字:
var arr = []; // An Array literal
arr[10] = 'someArrValue'; // set index 10
var obj = {}; // A plain object literal
obj['prop'] = 'someObjValue'; // set the "prop" property
var key = 'prop2';
obj[key] = 'someOtherObjValue'; // set the property referenced in the "key" variable
...哦,它们当然可以在正则表达式语法中使用...
关于javascript - 在 Javascript 中使用方括号来连接事物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672943/