javascript - 根据函数参数获取变量?

标签 javascript

HTML:

<button id="s01" onclick="getMusic(this.id)"></button>
<button id="s02" onclick="getMusic(this.id)"></button>

JavaScript:

var s01 = ["file", "song"];
var s02 = ["file", "song"];

function getMusic(e){
    alert()
}

好吧,我上面有这段代码(这是一个简化版本)。该函数将设置 egetMusic(e)s01s02 。我需要能够调用与该名称对应的变量(在 alert() 内),但我什至不知道从哪里开始。任何帮助表示赞赏,谢谢!

<小时/> 附:有机会我可以删除 onclick=""从 HTML 文件中将其替换为 addEventListener在js文件中仍然达到相同的效果吗?我不喜欢这样混合我的脚本。

最佳答案

如果您使用对象来保存数据,那就容易多了

var data = {
   s01 : ["file", "song"],
   s02 : ["file", "song"]
};

function getMusic(e){
    console.log(  data[e]  );
}

如果您使用addEventListener,您也可以删除内联 JavaScript

var data = {
  s01 : ["file1", "song"],
  s02 :["file2", "song"]
}

document.querySelectorAll('.btn').forEach(function(el) {
  el.addEventListener('click', function() {
    console.log( data[this.id] );
  });
});
<button id="s01" class="btn">Test 1</button>
<button id="s02" class="btn">Test 1</button>

关于javascript - 根据函数参数获取变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45201758/

相关文章:

javascript - FlexSlider 未捕获类型错误和引用错误

javascript - 了解 Sencha Touch 语法

javascript - Node.js + mongo + express MVC API : how to use controllers?

javascript - 带有外部 Handlebars 模板的 Ember.js

javascript - 追加值留在原地

javascript - jquery href 与 handlebars 链接冲突

javascript - 如何防止重复提交 <a href ="">?

javascript - 似乎无法使用 Python 和 Node.js 进行 POST

javascript - 在新选项卡而不是新的 _blank 窗口中打开

javascript - 将页面内容加载到一页(重复内容)对 SEO 不利?