function getIcon(id) {
var icons = {
'i8' : 'nachos1',
'i4' : 'eggs',
'i6': 'glass2',
'i5': 'drink',
'i1': 'starter',
'i2': 'steak',
'i3': 'ice-cream2',
'i10': 'carrot',
'i9': 'bread',
'i7': 'pizza',
'i11' : 'salad'
};
console.log('getIcon'); /* Wont happen */
return 'icon-'+icons[id];
}
$app = {
init: function() {
$el = $('div.el');
console.log($el.data('id')); /* i5 */
var icon = getIcon[$el.data('id')];
console.log(icon); /* undefined */
$el.text(icon);
}
}
$(function(){
$app.init();
})

div {
border: 1px solid;
display:inline-block;
margin:50px;
height: 40px;
min-width: 200px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
(it should be 'icon-drink')
<div class="el" data-id="i5"></div>
&#13;
我正在尝试根据id
获取图标类但执行此操作的函数还是未定义的,它不会登录控制台,
知道我错过了什么吗?
答案 0 :(得分:1)
交换括号的方括号:
getIcon[$el.data('id')]
应为getIcon($el.data('id'))
方括号用于物业访问;括号用于函数调用。
答案 1 :(得分:1)
getIcon
不是数组/对象,但您可以这样引用它:
getIcon[$el.data('id')]
将其更改为
getIcon($el.data('id'))
答案 2 :(得分:1)
将方括号交换为圆形支架
getIcon[$el.data('id')]
更改为
getIcon($el.data('id'))