<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Test.html</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
    <script>
     function show(city) {
     alert(city);
     } 
    </script>  </head>
  
  <body>
    <table>
     <tr>
     <td><a href="javascript:show(this.innerText)">苏州</a></td>
     </tr>
     <tr>
     <td><a onclick="show(this.innerText)">上海</a></td>
     </tr>
    </table>
  </body>
</html>
为什么苏州取不到值,上海可以取到值?

解决方案 »

  1.   

    <a href="javascript:show(this.innerText)">
    this指window对象<a onclick="show(this.innerText)">上海</a>
    this指a元素本身
      

  2.   

    href没有事件
    “javascript:”是协议(“http:”是协议)
      

  3.   

    是哪个window对象,还是不大懂,能详细点吗?谢谢
      

  4.   

    <a href="javascript:show(this.innerText)">
    等于
    <a href="javascript:show(window.innerText)">window是没有innerText属性的
      

  5.   

    还是不懂这里的this为什么就是window对象,还有这和伪协议有些什么联系呢?谁教懂我在加50分
      

  6.   

    href="javascript:show(this.innerText)"
    点击后等效于在js里写了一句show(this.innerText)
    而并不是一个事件处理器
    this在全局的时候指window对象伪协议只是一种说法(相对协议而言,如HTTP协议)onclick="show(this.innerText)"
    是添加了一个事件处理程序
    默认会将this指向触发该事件的元素
      

  7.   

    <a href="javascript:show(this.innerText)"> 
    this指window对象 <a onclick="show(this.innerText)">上海 </a> 
    this指a元素本身window是没有innerText属性的                  ----一楼``
      

  8.   

    HREF是超链接,是一个页面连接到另外一个页面,所以它的THIS指页面本身,而ONCLICK是单击事件,放在哪里就是指哪个元素
    这样理解是不是容易些?
      

  9.   

    <a href="javascript:show(this.innerText)"> 
    <a onclick="show(this.innerText)">上海 </a> 可以这么理解:this指针在函数内动态的指向调用该函数的对象,所以第二个this处于调用对象anchor的事件Onclick的委托函数show内部,自然指向anchor对象,也就是"a",显示正常;第一个,按照上面的理解,而this默认则指向window对象,而该对象污innerText属性,出错。
      

  10.   

    因为那里相当于执行了个eval,那里调用的参数是全局的,全局的this就是window
      

  11.   

    href="javascript:show(this.innerText)" 
    点击后等效于在js里写了一句show(this.innerText) 这句很好。。学习了