Chinaunix首页 | 论坛 | 博客
  • 博客访问: 518514
  • 博文数量: 135
  • 博客积分: 3568
  • 博客等级: 中校
  • 技术积分: 1942
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-19 17:52
文章分类

全部博文(135)

文章存档

2012年(29)

2011年(41)

2010年(26)

2009年(12)

2008年(9)

2007年(12)

2006年(6)

分类: 系统运维

2012-04-23 15:21:37



要点:在JS中 访问/调用 某个属性/方法时,一定要清楚当前对象是谁(this == window?) ,它有那些既有属性/方法?
   尽量都使用类似于  xxxObj.yyyAttr 这样的方式访问(即使用.操作符), 而不要直接使用。


点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
  3. <html xmlns="">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6. <title>气4人的JS错误</title>
  7. <script type="text/javascript">

  8. function select(idx){
  9.   alert(idx);
  10. }
  11. function XXX(){
  12.   alert("XXX");
  13. }
  14. </script>

  15. </head>
  16. <body>
  17. <p>哎,JS经验太少啊,怒了。同事写的类似的JS代码,预期的select方法没调用起来,
  18. 怎么想不出哪里出错,费了半个点。直到写了类似XXX方法之后才恍然。
  19. select 是单选框HTML元素的一个自己的内置方法啊,在onchange这样的内联JS代码中,
  20. this对象是该单选框,而不是window对象。
  21. 以前,碰到同事重复声明已有属性的,这次又碰到无意覆盖已有方法的,写个献丑的笔记吧。
  22. </p>
  23. <form action="#">
  24. <div><input type="radio" name="r" onchange="select(1);XXX();" value="AAA" /> AAA(错误)</div>
  25. <div><input type="radio" name="r" onchange="select(2);XXX();" value="BBB" /> BBB(错误)</div>
  26. <div><input type="radio" name="r" onchange="select(3);XXX();" value="CCC" /> CCC(错误)</div>
  27. <div><input type="radio" name="r" onchange="window.select(4);XXX();" value="DDD" /> DDD(正确)</div>
  28. </form>
  29. </body>
  30. </html>



阅读(778) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~