<TD class="t_f" id="hao_46487966">   <TD class="t_f" id="hao_36487966">   <TD class="t_f" id="hao_16487966">   <TD class="t_f" id="hao_66487966">
<script>              var objs = document.getElementsByTagName('TD');//按td取,如有其它标签也同样处理
               for(var i = 0; i < objs.length; i++) {
                   if(objs[i].className = "t_f") {
                       var str = objs[i].innerHTML;
                       objs[i].innerHTML = tiem(str);//time? tiem?
                   }
               };
</script>上面这段js代码用来获取td 标签 最后在调用time(str)语句。 我的问题是,能不能不用document.getElementById  或者  className  直接用getElementBy获取页面元素。。 比如下面这段代码  可问题是下面的代码运行出了问题  也不知道问题出在哪   所以麻烦哪位大侠帮帮忙改下。   谢谢啦!!!var objs=null;
for(var i=0;i<99487966;i++){
  if(objs=document.getElementById("hao_"+i)){
     var str=objs[i].innerHTML;
          objs[i].innerHTML=tiem(str);
  }
}

解决方案 »

  1.   

    for(var i=0;i<99487966;i++){
    你这要循环99487966次,你是要逆天么?
      

  2.   

    想要用document.getElementById,你就必须先知道它们的id
    想要用className的话,你第一种方法已经是基本的实现原理了,你可以把它做成一个公用函数。当然,你如果使用了js库的话,大多都有这个功能的。而且很多非IE浏览器下都已经有这个方法了第二种方法想都别想了,99487966次遍历,你有那么多td需要去遍历么,明显是走入误区了
      

  3.   


    LZvar objs = document.getElementsByTagName('TD');
      for(var i = 0; i < objs.length; i++) {
    这样遍历就可以了,for(var i=0;i<99487966;i++){
    像这样没有那么多次,你要遍历这么多次。。
      

  4.   

      var objs = document.getElementsByTagName('TD');//按td取,如有其它标签也同样处理
      for(var i = 0; i < objs.length; i++) {
      if(objs[i].className = "t_f") {
      var str = objs[i].innerHTML;
      objs[i].innerHTML = tiem(str);//time? tiem?
      }
      };语法错误了
    if(objs[i].className == "t_f")...
      

  5.   

    直接用getElementsByClassName就ok了,为什么非要用ById呢?
      

  6.   


    IE下是木有getElementsByClassName滴,得自己扩展
      

  7.   

     if(objs=document.getElementById("hao_"+i))
    当i的值超过元素的最大id时获取不到元素,此时就会报错不能向下运行
      

  8.   

    自己扩展一个 getElementsByClassName函数不就得了,
      

  9.   

    或者要给要获取的td的父级table加一个id 通过 getElementBy("idName").getElementByTagName("td")