javascript - 函数中this关键字的使用
ringa_lee
ringa_lee 2017-04-11 10:00:43
[JavaScript讨论组]

我先用for循环给每个标签上了一个onclick事件,然后this关键字把该对象传递到函数中,然后修改对象的属性,请问该怎么做呢?以下是我的代码部分,不知道this关键字应该用在年哪。。。

var tag = document.getElementsByName('tag');
for (var i = 0; i < tag.length; i++) {
tag[i].onclick=fun(this); //this加在这里?
}
function fun(obj){
console.log(obj.vaule);
//obj.value=123;
}

ringa_lee
ringa_lee

ringa_lee

全部回复(5)
天蓬老师

在for 里面的this是指的全局window对象吧?不知道楼主是想说修改DOM的属性?

var page = document.getElementsByName('tag');
for (var i = 0; i < tag.length; i++) {
    tag[i].onclick=fun; //this加在这里?
}
function fun(){
    console.log(this.vaule);

}
大家讲道理

我只想问下tag.length是什么鬼,不是page.length吗?

巴扎黑

var page = document.getElementsByName('tag');
for (var i = 0; i < tag.length; i++) {
tag[i].onclick=fun;
}
function fun(){
console.log(this.vaule);
}

PHP中文网

this就是指你现在发起操作的主观对象,就像你通过tagname找到的对象,然后给对象绑定click事件,那么这时的this就是这个对象,因为是这个对象的点击,这个事件源就是这个this,所以通常在事件中的this和e.target或者evet.target是指的同一个对象。你好像认为this要放在function()括号中,其实你放在同一个作用域就行,不是非要放在函数中的参数上!

高洛峰
var tag= document.getElementsByName('tag');
for (var i = 0; i < tag.length; i++) {
    tag[i].onclick=fun('newVal');
}
function fun(val,hide){
    console.log(this);    // 这里this就是 tag[i];
    this.value = val;    // 修改tag[i]的value值;
    this.style.display = hide || 'block'    // 修改style的值(是否隐藏)
}

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

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