我正在学习JavaScript,正在研究将其深入研究的内容,我开始了一个小型且简单的项目,并且试图在按下按钮后切换图像,我已经定义了所需的一切到变量,但是当我单击按钮时,它只会给我错误:Uncaught TypeError:无法设置未定义的属性“ src”,即使我要求它将src属性设置为IS且我不理解为什么会遇到麻烦,我看不到任何问题或原因?
我尝试重新标识HTML元素,并尝试使用不同的元素Js来查看是否遗漏了我遇到的问题,我尝试重新编写代码以消除所有看不到的内容。我已经遍历了其余代码,以检查是否有其他可能干扰执行的错误。
HTML:
<div class="col-md-4" id="coin">
<img src="images/coin-0.jpg" alt="Coin" id="coin-img" />
<button id="coin-flip">Flip Coin</button>
</div>
JavaScript:
document.querySelector('#coin-flip').addEventListener('click', function()
{
var flip = Math.floor(Math.random() * 2);
document.querySelector('#coin-img').document.src = 'images/coin-' +
flip + '.jpg';
});
基于Math.random的工作原理,我希望它是在执行时更改img src的变量。到目前为止,一切都已经开始进行。
答案 0 :(得分:0)
怎么了?
由于未定义您在下面一行中写的第二个“文档”,它给您带来未定义的错误。
document.querySelector('#coin-img').document.src = 'images/coin-' +
解决方案
我怀疑您是错误地写了第二个“文档”,只是想直接在“ querySelector”而不是第二个“ document”上更改“ src”属性。
这应该作为“ querySelector”返回您要求的HTML元素,在这种情况下为“ img”元素。具有src属性。
document.querySelector('#coin-flip').addEventListener('click', function()
{
var flip = Math.floor(Math.random() * 2);
document.querySelector('#coin-img').src = 'images/coin-' +
flip + '.jpg';
});
提供了其他所有设置正确的选项,那么此解决方案应该可以工作。