<a id="a1" href="http://www.csdn.net">csdn</a>
<script>
alert(document.getElementById('a1').innerHTML);
alert(a1.innerHTML);
</script>
大家可以运行上面的代码.两个alert都会弹出"csdn"
而且在ie,op,ff和chrome中都正常
有哪位能给出一个官方的定义?

解决方案 »

  1.   

    <script> alert(a1.innerHTML); </script> 
    如果id="a1"的元素存在,IE默认JS中的a1就是这个元素(对象)
      

  2.   

    上面的代码我测试了,,在op,ff和chrome下都是一样的结果
    应该算是标准了啊
    但就是找不到官方的说明
      

  3.   

    标准是标准,写法是写法,好像没什么必要说明,document可以省,getElementById()也可以省都是没有错,也是标准的,就没必要说明了吧以上是个人看法
      

  4.   

    我觉得这算不上标准,个人认为应为id的作用是给元素一个唯一的名字,就好比你在给一个变量起名字一样。但当你的id值违反了js的变量名的命名规则(没有违反html的语法规则)时,这个就不起作用了
      

  5.   

    LZ你想一下js变量不可以是中文,而html的id可以,这样你说的那个原则就不适用了
      

  6.   


    <a id="链接" href="http://www.csdn.net">csdn </a> 
    <script> 
    alert(document.getElementById('链接').innerHTML); 
    alert(链接.innerHTML); 
    </script> 
    ^_^
      

  7.   

    Microsoft(R) JScript(R)
    JScript 的变量 
      JScript 教程
    上一页
    下一页
     --------------------------------------------------------------------------------在 Microsoft JScript 中变量用来存放脚本中的值。这是一个使用名称来检索和操作值的方式。如果能有效地使用变量,能有助于理解脚本所做的工作。 
    变量声明
    尽管不是必须的,但在使用变量之前先进行声明是一种好的习惯。可以使用 var 语句来进行变量声明。只有当要在函数中声明一个局部变量时,才必须使用 var 语句。所谓局部变量就是那些只在函数内有效的变量。在其他任何时候,推荐方法是在使用之前先用 var 语句来声明变量。 
    下面是变量声明的代码示例: var mim = "A man, a plan, a canal, Panama!";  // mim 中存储的值是 string 类型。
    // 引号中的这句话就是赋给 mim 的值,为字符串文字。var ror = 3;        // ror 中存储的值为 numeric 类型。
    var nen = true;        // nen 中存储的值为 Boolean 类型。
    var fif = 2.718281828        // fif 中存储的值为 numeric 类型。变量命名
    JScript 是一种区分大小写的语言,因此将一个变量命名为 myCounter 和将其命名为 mYCounter 是不一样的。 另外,变量的名称其长度可以任意,但必须遵循若干规则: 
    第一个字符必须是一个字母(大小写均可)、或一个下划线(_)或一个美元符 ($)。 
    后续的字符可以是字母、数字、下划线或美元符。 
    变量名称不能是 保留字。 
    合法的变量名称示例: 
    _pagecount 
    Part9 
    Number_Items 
    一些无效的变量名称: 
    99Balloons // 以数字开头。 
    Smith&Wesson // & 对变量名而言不是一个合法的字符。 
    如果要声明一个变量并进行初始化,但又不指定任何特殊值,可以将其指定为一个专用值 null。 
    var zaz = null;
    var notalot = 3 * zaz;        // 此时 notalot 为 0。如果声明了一个变量但没有对其赋值,该变量存在,且为 undefined 类型。 
    var godot;
    var waitingFor = 1 * godot;  // 由于 godot 为 undefined 类型,因此 waitingFor 的值为 NaN。如果直接对变量赋值,就隐式地声明了一个变量(即不使用 var)。不过,不能在根本没有声明的情况下就使用一个变量。这样做将导致运行时产生错误。 
    lel = "";  // 变量 lel 已隐式声明。var aMess = vyv + zez;  // 产生一个错误,因为 vyv 和 zez 不存在。强制转换
    由于 JScript 是一种自由类型的语言,JScript 中的变量在技术上没有固定的类型。不过,它们具有与其包含的值的类型等价的类型。在某些环境下可能将变量的自动转换(或强制转换)或数据的一部分强制为别的类型。Number 类型易于被包括在字符串中,但字符串不能直接包含到数值中,为此提供了显式的转换函数 parseInt() 和 parseFloat()。 
    var theFrom = 1;
    var theTo = 10;
    var doWhat = "Count from ";
    doWhat += theFrom + " to " + theTo + ".";        执行该代码后,doWhat 变量的值为 "Count from 1 to 10." 其中的数字数据被强制为字符串格式。 
    var nowWhat = 0;
    nowWhat += 1 + "10";  // 在本例中,由于 "10" 是一个字符串,
    // "+=" 运算符其连接作用。执行该代码后,nowWhat 变量的值为 "0110"。执行下述步骤可获得该结果: 
    查看 1 和 "10" 的类型。"10" 为一个字符串,1 为数值类型,因此该数被强制为一个字符串。 
    由于 + 运算符两边的值都是字符串,因此执行字符串连接操作。其结果为 "110" 
    查看 += 两边的值的类型。 nowWhat 包含一个数,而 "110" 是字符串,因此将数转换为一个字符串。 
    由于现在 += 运算符两边都是字符串,因此执行字符串连接操作。其结果为"0110"。 
    将结果存放到 nowWhat。 
    var nowThen = 0;
    nowThen += 1 + parseInt("10");        // 在本例中 "+=" 执行加法。执行该代码后,nowThen 变量包含整数 11。 ----------
    没找到规定:"不允许用中文命名变量"
    ^_^
      

  8.   

    变量命名 
    JScript 是一种区分大小写的语言,因此将一个变量命名为 myCounter 和将其命名为 mYCounter 是不一样的。 另外,变量的名称其长度可以任意,但必须遵循若干规则:.........
      

  9.   

    第一个字符必须是一个字母(大小写均可)、或一个下划线(_)或一个美元符 ($)
    链接.innerHTML 显然不符合这条,虽然多数浏览器支持这样写,但不是全部都支持如果<a id='123'></a>呢,不就不成立了
      

  10.   


    在W3C标准深入人心之前,相信很多人都是这样写的,还有document.all.a1等等的写法,这样写是可以运行的,当我们用FF测试时,你会发现控制台里有一条信息:
    警告: ID/NAME 所引用的元素位于全局范围。请使用 W3C 的标准形式 document.getElementById() 。
    源文件:http://www.v-ec.com/jslib/
    行:4
      

  11.   

    警告: ID/NAME 所引用的元素位于全局范围。请使用 W3C 的标准形式 document.getElementById() 。 源文件:http://www.v-ec.com/jslib/ 行:4