扫码关注官方订阅号
比如有10个button遍历后我要得到当前按钮的值,用jquery很好实现但是原生js的this指向了window对象怎么弄?
欢迎选择我的课程,让我们一起见证您的进步~~
我就用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 ..(){......}这个格式是定义在那个对象上的
function ..(){......}
this的指针是指向调用它的那个对象,即:for(var i=0;i<obj.length-1;i++){
obj[i].onclick=function(){ console.log(this);//obj[i] }
}
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"; }
把单击事件里面的this当做参数传给下面那个函数
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我就用3个按钮做实验吧,是下面这样吗?
我猜你可能这样写:
简单的讲,当this不是你预期要的对象的时候,估计是作用域问题
好好检查一下this所在的上下文环境,看看
function ..(){......}这个格式是定义在那个对象上的this的指针是指向调用它的那个对象,即:
for(var i=0;i<obj.length-1;i++){
}
document.getElementById(id).onclick = function(e){
}
把单击事件里面的this当做参数传给下面那个函数