繁体   English   中英

为什么此函数在控制台中返回未定义但未登录的信息?

[英]Why is this function returning undefined but not loggin in console?

 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> 

我正在尝试根据ID获取图标类,

但是执行此操作的功能始终会不确定地重新运行,并且不会登录控制台,

知道我缺少什么吗?

交换方括号中的括号:

getIcon[$el.data('id')]应该是getIcon($el.data('id'))

方括号用于财产访问; 括号用于函数调用。

getIcon不是数组/对象,但是您可以这样引用它:

getIcon[$el.data('id')]

更改为

getIcon($el.data('id'))

将方括号交换为圆括号

getIcon[$el.data('id')]

改成

getIcon($el.data('id'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM