javascript - 点击li用li内容去替换背景色值,事件代理效果出不来什么情况?
阿神
阿神 2017-04-10 17:26:27
[JavaScript讨论组]
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <style>
*{list-style-type: none;}
#colcon li{ width: 50px; height: 50px; border:1px solid #ccc; float: left; margin:10px;line-height: 50px; background-color:#fcc;text-align: center;} 
</style>
<script>
window.onload=function (){
 var aUL=document.getElementById("colcon");
 var aLI=aUL.getElementsByTagName("li");
 aUL.onclick = function(ev){
     var ev = ev || window.event;
     var target = ev.target || ev.srcElement; 
    if(target.nodeName.toLowerCase == "li"){
        
        var newcolo = target.innerHTML;
        target.style.background = newcolo;
      };
     
   };
   
    }
</script>
</head>
<body>
<ul id="colcon">
  <li>#000</li>
  <li>#ccc</li>
  <li>#ddd</li>
</ul>
</body>
</html>
阿神
阿神

闭关修行中......

全部回复(5)
高洛峰
if(target.nodeName.toLowerCase() == "li"

toLowerCase后边加括号

天蓬老师

这样就可以了,试着单步调试,用console.log()

window.onload=function (){
 var aUL=document.getElementById("colcon");
 var aLI=aUL.getElementsByTagName("li");
 aUL.onclick = function(ev){
     
     var ev = ev || window.event;
     var target = ev.target || ev.srcElement;
    
    if(target.nodeName.toLowerCase() == "li"){
        var newcolo = target.innerText;
        target.style.background = newcolo;
      };
     
   };
   
    }
天蓬老师

target.nodeName.toLowerCase()
改成这个就可以了

大家讲道理

楼上正解

高洛峰

toLowerCase(),你把后边的括号掉了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号