javascript - 原生js如何通过this获取被操作对象啊?
天蓬老师
天蓬老师 2017-04-11 13:12:41
[JavaScript讨论组]

比如有10个button遍历后我要得到当前按钮的值,用jquery很好实现但是原生js的this指向了window对象怎么弄?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(5)
阿神

我就用3个按钮做实验吧,是下面这样吗?

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test</title>
</head>
<body>
<button>1</button>
<button>2</button>
<button>3</button>
<script>
var btns = document.getElementsByTagName("button");
for(var i = 0; i < btns.length; i++) {
  btns[i].onclick = function(){
    alert(this.innerHTML);
  }
}
</script>
</body>
</html>
伊谢尔伦

我猜你可能这样写:

    document.getElementsByTagName('button')[0].onclick=function(){
        clickButton()
    }
    function clickButton(){
        this.style.background="red"
    }

简单的讲,当this不是你预期要的对象的时候,估计是作用域问题
好好检查一下this所在的上下文环境,看看function ..(){......}这个格式是定义在那个对象上的

PHPz

this的指针是指向调用它的那个对象,即:
for(var i=0;i<obj.length-1;i++){

obj[i].onclick=function(){
    console.log(this);//obj[i]
}

}

ringa_lee

document.getElementById(id).onclick = function(e){

var e = e || window.event;
var target = e.target || e.srcElement;
if(target.toLowerCase()=="button"){
     target.style.background="red";
}

}

PHP中文网

把单击事件里面的this当做参数传给下面那个函数

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

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