javascript - 问一下关于JS中this的问题。

查看:103
本文介绍了javascript - 问一下关于JS中this的问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

为什么这个地方onclick事件没有被触发?如果是jquery中这样可以得到当前点击的这个li的dom对象,那JS种不能这样使用吗?

$(document).ready(function(){
    $("ul li").click(function(){
        console.log($(this));//打印出当前被点击的li的jquery对象
        console.log(this);//打印出当前被点击的li的dom对象
    });
});

window.onload = function(){
    var lis = document.getElementsByTagName("li");
    lis.onclick = function(){
        console.log("111");
        console.log(this);
    }
}

修改:

window.onload = function(){
    var lis = document.getElementsByTagName("li");
    Array.from(lis).forEach(function(el) {
        console.log("111");
        console.log(this);
    })
}

<div>
    <ul>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</div>

谢谢各位,之前都用jquery,现在重新看看js发现了很多问题。这种低级错误以后不会再犯了,印象深刻 ^_^ 。

这个问题已被关闭,原因:问题已解决 - 问题已解决,且对他人无借鉴意义

解决方案

能把 你有点击触发这个事件么? 我在 segmentFault 可以用。


不过你代码有点小问题 getElementsByTagName 返回的是一个类数组对象

应该遍历他 然后把给每个元素的 onclick 赋值

这篇关于javascript - 问一下关于JS中this的问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆