点击按钮时无法同时显示GIF动图与文本,如何修正现有代码?
问题原因
- 方法名拼写错误:你使用的
getElementByClassName不存在,正确API名称为getElementsByClassName(注意Element为复数形式,末尾加s) getElementsByClassName返回的是匹配类名的元素集合(类数组结构),无法直接操作style属性,需要通过索引取出具体的DOM元素再修改样式。
修正后的核心JS代码
function displayRoutine() { // 取集合中第一个匹配的元素修改样式 document.getElementsByClassName('results')[0].style.display = 'block'; document.getElementsByClassName('loading')[0].style.display = 'block'; alert('me'); }
完整可运行代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .results, .loading { display: none; } </style> </head> <body> <div class="container" style="margin-left:35%; margin-top:20%;"> <button class="btn" onclick="displayRoutine()">点击查看我的晨间日常</button> <div class="loading"> <img src="-here is a GIF link" alt="晨间日常动图"> </div> <div class="results"> <div class="me"> <p style="margin-left:50px;">这就是我起床的样子!!!</p> </div> </div> </div> <script> function displayRoutine() { document.getElementsByClassName('results')[0].style.display = 'block'; document.getElementsByClassName('loading')[0].style.display = 'block'; alert('me'); } </script> </body> </html>
内容的提问来源于stack exchange,提问作者Raluca Adina Avram
相关产品推荐
相关产品推荐

