写三个li并设css颜色,然后js绑事件点击,改变body背景色为所选li颜色,那里写错了?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写三个li并设css颜色,然后js绑事件点击,改变body背景色为所选li颜色,那里写错了?相关的知识,希望对你有一定的参考价值。

<style type="text/css">
ul
list-style: none;


li
float: left;
width: 20px;
height: 20px;
margin-right: 10px;


.red
background-color: red;


.green
background-color: green;


.blue
background-color: blue;

</style>

<script type="text/javascript">
window.onload = function ()
var lis = document.getElementById("ulList").childNodes;
for (var i = 0; i < lis.length; i++)
if (lis[i].nodeType == 1)
this.onclick = function ()
//document.body.style.backgroundColor = this.getAttribute("class");这不行
document.body.style.backgroundColor = this.style.backgroundColor;//这样也不行




</script>
</head>
<body>
<ul id="ulList">
<li class="red"></li>
<li class="green"></li>
<li class="blue"></li>
</ul>

两个地方有错误:

     this.onclick = function () 其中 this 改成 lis[i]。

    //document.body.style.backgroundColor = this.getAttribute("class");这不行
                           document.body.style.backgroundColor = this.style.backgroundColor;//这样也不行

    这段代码改成 document.body.className = this.className;


修改后的js如下:

 window.onload = function () 
            var lis = document.getElementById("ulList").childNodes;
            for (var i = 0; i < lis.length; i++) 
                if (lis[i].nodeType == 1) 
                    lis[i].onclick = function () 
document.body.className = this.className;
                    
                
            
        

参考技术A

JS

$("#ulList li").click(function()
$("body").css("backgroundColor",$(this).css("backgroundColor"));
)

<ul id="ulList">
    <li class="red" ></li>
    <li class="green" ></li>
    <li class="blue" ></li>
</ul>

修改版 这样不用在li加事件

参考技术B this不对 this指的是window 改成lis[i]
for (var i = 0; i < lis.length; i++)
if (lis[i].nodeType == 1)
lis[i].onclick = function ()
document.body.style.backgroundColor = this.getAttribute("class");


以上是关于写三个li并设css颜色,然后js绑事件点击,改变body背景色为所选li颜色,那里写错了?的主要内容,如果未能解决你的问题,请参考以下文章

div hover事件

用js写 有六个按钮点击按钮会变色 然后其他按钮恢复原来的颜色

vue点击tab改变背景颜色

求助js操作多ul li背景颜色问题

php怎么给按钮添加事件

请问css样式中 能不能改变LI前面小黑点的颜色?(字体颜色和小黑点颜色不一样)