Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用选择标记更改网站的背景图像_Javascript_Html_Html Select - Fatal编程技术网

Javascript 使用选择标记更改网站的背景图像

Javascript 使用选择标记更改网站的背景图像,javascript,html,html-select,Javascript,Html,Html Select,我正在学习JavaScript,并设法更改了背景颜色: <script> function changecolor(id,color) { id.style.backgroundColor=color; } </script> <div id="container"> <p> Select Color to change background:</p> <sele

我正在学习JavaScript,并设法更改了背景颜色:

<script>
     function changecolor(id,color) {
            id.style.backgroundColor=color;
     }
</script>


<div id="container">
     <p> Select Color to change background:</p>
     <select id="themenu" onchange="changecolor(container,themenu.value)">
          <option value="white"> </option>
          <option value="red">RED</option>
          <option value="blue">BLUE</option>
          <option value="green">GREEN</option>
     </select>
</div>

函数changecolor(id、颜色){
id.style.backgroundColor=颜色;
}
选择颜色以更改背景:

红色 蓝色 绿色

还有其他方法吗

你可能只是被语法卡住了

<select id="themenu" onchange="changecolor(container,this.value)"> <!-- Change -->
 <option value="white"> </option>
 <option value="red">RED</option>
 <option value="blue">BLUE</option>
 <option value="green">GREEN</option>
</select>

红色
蓝色
绿色
此.value
指当前对象的选定值

menu.value
也可以正常工作,您可能只是在其他地方卡住了


您的javascript函数应该是这样的

function changecolor(id,color){
  document.getElementById(id).style.backgroundColor=color;
}

您只需引用当前对象(此),然后引用其父节点及其值,而不是使用ID:

<script>
    function useValueAsParentColor(menu) {
        menu.parentNode.style.backgroundColor = menu.value;
    }
</script>

<div>
    <p> Select Color to change background:</p>
    <select onchange="useValueAsParentColor(this); ">
        <option value="white"> </option>
        <option value="red">RED</option>
        <option value="blue">BLUE</option>
        <option value="green">GREEN</option>
    </select>
</div>

函数UseValueAspentColor(菜单){
menu.parentNode.style.backgroundColor=menu.value;
}
选择颜色以更改背景:

红色 蓝色 绿色
我刚刚调用了父元素,它工作得非常好

onchange="changecolor(this.parentNode,themenu.value)"

您肯定应该看看jQuery()。jQuery是一个JavaScript库,它与动画、验证等一起完成这类工作,更简单@正如Tom所提到的,他只是在学习JavaScript,而不是jQuery。在跳进jQuery地狱之前,让我们先给他看一点纯JavaScript,好吗?我发现它很容易,JS,jQuery难还是O.O@heartcode@KatyoshahJS很简单,这就是为什么我认为新手最好从vanilla JS开始,而不是一个流行且强大的库来解决简单的问题。changecolor(这个?但是我想更改div容器的颜色,我必须添加document.getElementByid(id)为什么不直接添加id.style@brokenheart@Katyoshah因为
container
是html元素的id,所以需要这样做。