如何让 onclick 事件用于更改 CSS 属性?

我是一个尝试 Javascript 的初学者。我想通过 onclick 事件更改字体颜色和字体系列(以及背景图像的渐变,但我什至无法猜测如何访问它)。我制作了一个按钮,单击该按钮时应运行 spookFunction 并将正文中的字体颜色更改为橙色,将字体系列更改为谷歌字体 Bangers。我试图制作一个小提琴供您查看代码(这是我第一次使用 JSFiddle,所以我不确定它是如何工作的): https : //jsfiddle.net/Linnea_Borealis/u8n9ezhs/10/我发现的一些示例代码只是为了看看它是否可以工作并与我自己的代码进行比较:


单击我更改我的文本颜色。

    <script>

    function myFunction() {

    document.getElementById("demo").style.color = "red";

    }

    </script>

那部分工作正常,但另一部分没有。有什么不同?


我在 VS Code 中注意到“style”在“document.getElementById("welcome").style.color="red"" 中比在"document.getElementsByTagName("body").style.color="orange" 中有另一种颜色;" 和 "document.getElementsByTagName("body").style.fontFamily="Bangers", 草书;" 我以错误的方式使用 getElementsByTagName 吗?


此外,在 JS Fiddle 中,文本周围有一个白色矩形,当我在浏览器中打开 html 文件时,我看不到它……为什么?如果有人能以一种简单的初学者友好的方式解释这一点,我将不胜感激。


哆啦的时光机
浏览 229回答 3
3回答

qq_花开花谢_0

白色矩形是您的身体。如果你添加你的 css body 类,background-color:black;你可以看到它。关于 getElementsByTagName 的其他答案也是正确的。尝试这个:function myFunction() {&nbsp; document.getElementById("demo").style.color = "red";}function spookFunction() {&nbsp; document.getElementsByTagName("body")[0].style.color="orange";&nbsp; document.getElementsByTagName("body")[0].style.fontFamily="Bangers, cursive";&nbsp; document.getElementById("welcome").style.color="red"&nbsp;}html {&nbsp; background-image: linear-gradient(#0099ff, white);&nbsp; min-height: 100%;}body {&nbsp; margin-left: 10%;&nbsp; margin-right: 10%;&nbsp; margin-top: 10%;&nbsp; font-family: 'Lobster', cursive;&nbsp; color: white;&nbsp; background-color: black;}h1{ font-size: 50px; }p {&nbsp; font-size: 30px;}<!DOCTYPE html><html>&nbsp; &nbsp; <head>&nbsp; &nbsp; &nbsp; &nbsp; <meta charset="UTF-8">&nbsp; &nbsp; &nbsp; &nbsp; <meta name="viewport" content="width=device-width, initial-scale=1.0">&nbsp; &nbsp; &nbsp; &nbsp; <title>Spook My Page</title>&nbsp; &nbsp; &nbsp; &nbsp; <link rel="stylesheet" type="text/css" href="Style.css">&nbsp; &nbsp; &nbsp; &nbsp; <link href="https://fonts.googleapis.com/css2?family=Bangers&family=Lobster&display=swap"&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; rel="stylesheet">&nbsp; &nbsp; </head>&nbsp; &nbsp; <body>&nbsp; &nbsp; &nbsp; &nbsp; <h1 id="welcome">Welcome Friend!</h1>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <p>To change the color scheme — Click the button below!</p>&nbsp; &nbsp; &nbsp; &nbsp; <p id="demo" onclick="myFunction()">Click me to change my text color.</p>&nbsp; &nbsp; &nbsp; &nbsp; <button type="button" onclick="spookFunction()">Click Me!&nbsp; &nbsp; &nbsp; &nbsp; </button>&nbsp; &nbsp; </body></html>

慕妹3146593

getElementsByTagName 返回数组而不是单个元素。因此,您将必须访问像这样的元素 getElementsByTagName("body")[0]。希望这会有所帮助。

慕斯王

function spookFunction() {&nbsp; &nbsp; &nbsp; &nbsp; document.getElementsByTagName("BODY")[0].style.backgroundColor="orange";&nbsp; &nbsp; &nbsp; &nbsp;document.getElementsByTagName("BODY")[0].style.fontFamily="Bangers,cursive";&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; document.getElementById("welcome").style.backgroundColor="red"}这应该可以完成工作,您为 backgroundColor 使用了错误的变量名称并且找不到正文,因为 document.getElementsByTagName("BODY") 返回了一个标签数组
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript