li.onclick 不能工作

我先获取到li标签,增加点击事件,但是不能工作;

      <ul class="wrap">
        <li class="tit">
            
        </li>
        <li class="tit">
        
        </li>
        <li class="tit">
        
        </li>
      </ul>
var li = document.getElementsByTagName("li");
li.onclick = function() {
    alert(1);
};

图片描述

阅读 7.8k
7 个回答
var li = document.getElementsByTagName("li");//这里返回的是多个,getElements很明显复数嘛
li[0].onclick = function() {
    alert(1);
};

加on前缀的事件处理,是原始DOM模型的事件处理程序,印象里你的onclick只有a标签能挂。这类事件处理的特点是限定类型,限定个数(只能绑一套),所以建议你还是用事件监听或者直接上jq吧。

如果你不用jq,用原生。那么,无论是getElementsByClass还是getElementsByTagName,后面加[0]都是一个好习惯,要不莫名其妙的不好使。

应该是想实现点击每个li都alert(1),可以这样写for(var i=1,l=li.length;i < l;i++){
li[i].index = 1;
li[i].onclick = function(){
alert(this.index);
}

Li 为 伪数组 你这样绑定 肯定错了呀、

//获取li的数组,因为匹配的tag有很多
lis=document.getElementsByTagName("li");
//然后写个for循环或者对单个的li写onclick

//代码如下:
for(var i=0,len;lis.length;i<len;i++){
    lis[i].onclick=function(){
        alert(this);
    }
};

//或者:
lis[0].onclick=function(){
    alert(this);
};

getElementsByTagName() 方法可返回带有指定标签名的对象的集合。

是个集合啊,大兄弟!!!

你得循环给这个集合中的对象一个个绑上click事件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题