本帖最后由 mycggo 于 2010-05-21 14:36:26 编辑

解决方案 »

  1.   

    function label_class()
    {
        if(!document.getElementsByTagName) return false;
        var input_t=document.getElementsByTagName("input");
        for(var i=0; i<input_t.length; i++)
        {
            var ft=input_t[i];
            if(ft.className=="i_t" && ft.parentNode.className=="s_i")
            {            
                  ft.onfocus = function()
                  {
                      this.parentNode.className="s_i_v";
                  }
                  ft.onblur = function()
                  {
                      this.parentNode.className="s_i";
                  }            
            }
        }
    }
      

  2.   

    if(ft.className == "i_t" && ft.parentNode.className=="s_i")
      

  3.   

    &&   修改过后还是不行
      

  4.   

    OR:
    ft.getAttribute("class") --> ft.getAttribute("className")
      

  5.   

    把:ft.getAttribute("class")=="i_t" & ft.parentNode.className=="s_i"
    修改成:if(ft.className == "i_t" && ft.parentNode.className=="s_i")后在IE7和IE6下面都正常了,真是奇怪,难道:ft.getAttribute("class")=="i_t"这样的写法IE7和IE6不支持?
      

  6.   

    后在IE7和IE6下面都正常了,真是奇怪,难道:ft.getAttribute("class")=="i_t"这样的写法IE7和IE6不支持?
    ----------
    ie的bug
      

  7.   

    呵呵 其实是支持的
    只是有一点你要知道 class==>className
    你试试ft.getAttribute("className")看看就知道了
      

  8.   


    经过测试
    ft.getAttribute("className")     IE7和IE6都是支持的,但FF等标准浏览器不支持。
    ft.getAttribute("class")         IE7和IE6都是不支持的,但FF等标准浏览器支持。
    ft.className=="input_t"          浏览器都支持。
      

  9.   

    所以我让你写ft.className。
    其实这个涉及到一个改进问题~!
      

  10.   

    class因为是javascript的保留字 因此在JS里操作DOM时把class改成了className
    而之前IE浏览器是全部使用这个名称然而后来发现通过属性方式查找使用原名称更适合xml dom的规范,则xhtml,而又不影响js的保留字
    比如a.getAttribute("class")并不会和class保留字冲突。于是就修正为当前的方式。其中getAttribute其实是xml dom的方法,而非JS的
    而a.className影响到了保留字则不会改成a.class