简体   繁体   English

html、css 和 javascript 的新手。 我无法从 onclick 的下拉菜单中将变量传递给我的 javascript 函数

[英]New to html,css, and javascript. I am having trouble passing variables to my javascript function from a drop down menu onclick

I assume I am making a syntax error, but not able to find an example close to mine on google.我假设我犯了一个语法错误,但无法在谷歌上找到一个接近我的例子。 Would love any help anyone is willing to provide.希望任何人都愿意提供任何帮助。 I just started working in HTML, CSS, and JavaScript today.我今天刚开始使用 HTML、CSS 和 JavaScript。 I thought it might be how I am passing the values to the function.我认为这可能是我将值传递给函数的方式。 However when I look up passing values it seems like functionName(value) is the correct format.但是,当我查找传递值时, functionName(value) 似乎是正确的格式。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
    // Function to change webpage background color
    function changeBodyBg(color){
        document.body.style.background = color;
    }
</script>
<style>
.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content a:hover {background-color: #ddd;}

.dropdown:hover .dropdown-content {display: block;}

.dropdown:hover .dropbtn {background-color: #3e8e41;}
</style>
</head>
<body>

<h2>Hoverable Dropdown</h2>
<p>Move the mouse over the button to open the dropdown menu.</p>

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
    <a href="#" onclick="changeBodyBg(red)">Red</a>
    <a href="#" onclick="changeBodyBg(blue)">Blue</a>
    <a href="#" onclick="changeBodyBg(green)">Green</a>
  </div>
</div>

</body>
</html>

You simply need single quotes '' around your string function arguments.您只需要在字符串函数参数周围加上单引号'' When you use just a color name, your code is looking for a variable named red / green / blue , and not interpreting it as a string.当您只使用颜色名称时,您的代码正在寻找名为red / green / blue的变量,而不是将其解释为字符串。

<a href="#" onclick="changeBodyBg('red')">Red</a>
<a href="#" onclick="changeBodyBg('blue')">Blue</a>
<a href="#" onclick="changeBodyBg('green')">Green</a>

 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <script> // Function to change webpage background color function changeBodyBg(color){ document.body.style.background = color; } </script> <style> .dropbtn { background-color: #4CAF50; color: white; padding: 16px; font-size: 16px; border: none; } .dropdown { position: relative; display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: #f1f1f1; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } .dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; } .dropdown-content a:hover {background-color: #ddd;} .dropdown:hover .dropdown-content {display: block;} .dropdown:hover .dropbtn {background-color: #3e8e41;} </style> </head> <body> <h2>Hoverable Dropdown</h2> <p>Move the mouse over the button to open the dropdown menu.</p> <div class="dropdown"> <button class="dropbtn">Dropdown</button> <div class="dropdown-content"> <a href="#" onclick="changeBodyBg('red')">Red</a> <a href="#" onclick="changeBodyBg('blue')">Blue</a> <a href="#" onclick="changeBodyBg('green')">Green</a> </div> </div> </body> </html>

When you pass a string to a function as a parameter it needs to be in quotes.当您将字符串作为参数传递给函数时,它需要放在引号中。 If your function is already in double quotes, you can use single quotes to pass the string.如果您的函数已经在双引号中,您可以使用单引号来传递字符串。 Like this -像这样 -

onclick="changeColor('myColor')"

So the correct syntax will be所以正确的语法是

<div class="dropdown">
 <button class="dropbtn">Dropdown</button>
   <div class="dropdown-content">
     <a href="#" onclick="changeBodyBg('red')">Red</a>
     <a href="#" onclick="changeBodyBg('blue')">Blue</a>
     <a href="#" onclick="changeBodyBg('green')">Green</a>
   </div>
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我正在尝试创建一个下拉菜单,用于存储餐馆菜单中的项目,使用vanilla JavaScript传递一组对象 - I am trying to create a drop down menu which stores items from a restaurant menu, using vanilla JavaScript by passing it an array of objects 下拉菜单,CSS,HTML和JavaScript:JavaScript使菜单跳转并且无法正常运行 - Drop down menu, CSS, HTML and JavaScript: JavaScript making menu jump and not function correctly 基于CSS / Javascript的下拉菜单。 onclick事件的问题 - CSS/Javascript based drop down menu. Issue with onclick event 我在 javascript 中遇到了回文函数的问题 - I am having trouble with a palindrome function in javascript Javascript?/ CSS - 下拉菜单 - Javascript?/CSS - Drop Down Menu 我使用Pixastic的HTML5 Canvas和Javascript过滤器处理图像时遇到问题,我在做什么错? - I am having trouble processing my image using HTML5 Canvas and Javascript Filters from Pixastic, what am I doing wrong? 使用HTML下拉菜单分配JavaScript变量(用户选择) - Assigning JavaScript variables with HTML drop-down menu (user selection) 在Javascript中的函数中传递对象或从中返回对象。 - Passing and returning an object to / from a function in Javascript. onmouseout出现问题-简单的下拉菜单Javascript - Trouble with onmouseout - Simple drop down menu Javascript 改进下拉菜单的代码(HTML / CSS / JavaScript) - Improve code for drop down menu (HTML/CSS/JavaScript)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM