| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1465 人关注过本帖
标题:【新手】onclick之类的属性到底怎么理解
只看楼主 加入收藏
於晓琪123
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2014-11-4
结帖率:71.43%
收藏
已结贴  问题点数:20 回复次数:5 
【新手】onclick之类的属性到底怎么理解
学习javascript(看书 看视频)这几天,发现很多讲解都是很表面 让我学习起来很痛苦 比如谈到 onclick 之类属性的时候
<input type="button" onclick="方法名+()"/>   当点击按钮的时候就会执行后面的方法。(给一个属性赋值 而且还是“函数名+()”虽然不知道为什么但是还是只能这么理解了)
今天看到另外一种方式 给onclick 赋值(在这里就这么说吧) 如下:
 正确代码 function btnClick() {
            var x = document.getElementsByTagName("input");
            for (var i = 0; i < x.length; i++) {
                if (x[i].type == "button") {
                    x[i].onclick = change;
                }
            }
        }
而我当时写的时候最后一行一直是 x[i].onclick = "change()";  
看到正确的写法   我真心不理解了 我想说 为什么 为什么 为什么是这样的 - -  是不是只有我才有这样的困惑  
苦恼纠结中  求解救
搜索更多相关主题的帖子: javascript function button 而且 
2015-08-04 19:39
jsRank
Rank: 5Rank: 5
等 级:职业侠客
威 望:6
帖 子:69
专家分:303
注 册:2015-5-11
收藏
得分:20 
(1)<input type="button" onclick="方法名+()"/>是html属性赋值写法。
(2)x[i].onclick = change;是js的写法。
一开始(1)比较常用,但(1)的写法将html代码与js函数糅合到一起了,耦合性太强。后来为了让html代码与js代码分离,(2)的写法越来越流行。
x[i].onclick = change和x[i].setAttribute("onclick","change()")的写法相同。
可以这么理解:
x[i]是一个js对象,它包含两个属性,一个是onclick,一个是setAttribute,结构如下:
    x[i] = {
        onclick:function(){},
        setAttribute:function(name,value){
                        
        }
    }
x[i].onclick的值是一个函数,它接受的值就是一个引用,也就是你例子中change,不接受字符串"change()",这一点是由js决定的。
好比java语言,我们定义a为String类型,当我们为a赋一个整数时会出错。js与java的区别是,你给onclick赋一个字符串它不会出错但绝对不会起作用,原因是js不是强类型语言,它是一种弱类型解释型的语言。

追求卓越,成功就会跟着你走!
2015-08-05 09:54
於晓琪123
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2014-11-4
收藏
得分:0 
回复 楼主 於晓琪123
好的 谢谢版主
2015-08-05 21:12
於晓琪123
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2014-11-4
收藏
得分:0 
回复 2楼 jsRank
谢谢 解惑
2015-08-05 21:13
於晓琪123
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2014-11-4
收藏
得分:0 
回复 3楼 边小白
谢谢解答
2015-08-05 21:13
快速回复:【新手】onclick之类的属性到底怎么理解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024405 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved