我怀疑我不了解JavaScript参数传递的一些基本知识。
如果单击此按钮,则会在警报框中收到“未定义”消息。
<button onclick="play_audio(this.src)" src="foo.m4a">▶</button>
如果单击此按钮,则字符串值将正确传递:
<button id="foo.m4a" onclick="play_audio(this.id)">▶</button>
此处的Codepen:
答案 0 :(得分:1)
button
没有src
属性。但是,您可以使用this.getAttribute('src')
。
<button src="foo.m4a" onclick="play_audio(this.getAttribute('src'))" >▶</button>
<script>
function play_audio(src){
console.log("Playing "+src);
}
</script>
建议您使用data-src
(可以在data-
之后使用任何前缀,而不必使用src
)和this.dataset.src
来代替(可以使用data- *属性以嵌入自定义数据),因为它将确保您的代码不会与以后的HTML版本的HTML元素属性冲突。参见documentation。
<button data-src="foo.m4a" onclick="play_audio(this.dataset.src)" >▶</button>
<script>
function play_audio(src){
console.log("Playing "+src);
}
</script>