Ian*_*lor 2 javascript css jquery concatenation square-bracket
任何人都知道为什么这不起作用?
$('#screen').css({
'background-image': [bg_num == 1 ? 'josh' : 'jessi'] + '_background.jpg',
'background-color': 'red'
});
Run Code Online (Sandbox Code Playgroud)
背景颜色正在设置,但图像不是.
我没有太多练习在Javascript中使用方括号来完成这种事情.如果我做错了什么,任何人都有提示吗?或者对它们的使用没有很好的解释?
编辑:只是要清楚,检查本身实际上正在发生,因为如果我在console.log()中做同样的事情输出"josh_background.jpg"就好了.它只是没有采用这个CSS设置功能.
编辑:
你正在做的是创建一个带有值的数组文字,'josh'或者'jessi'然后连接'_background.jpg'到它,所以它在技术上会起作用.
问题是你错过'url()' 了background-image价值的一部分.
'background-image': 'url(' + (bg_num == 1 ? 'josh' : 'jessi') + '_background.jpg)',
Run Code Online (Sandbox Code Playgroud)
...但你仍然应该使用()for分组而不是构造一个数组.
原始答案:
使用括号分组而不是方括号:
'background-image': (bg_num == 1 ? 'josh' : 'jessi') + '_background.jpg',
Run Code Online (Sandbox Code Playgroud)
您在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
Run Code Online (Sandbox Code Playgroud)
...哦,他们当然使用正则表达式语法...
| 归档时间: |
|
| 查看次数: |
1609 次 |
| 最近记录: |