搜索功能为同一个类名

时间:2013-11-07 23:58:56

标签: javascript

我有一个函数,我正在使用javascript来突出显示由同一个类命名的给定表的每一行...我遇到了问题,代码工作得很好但它会只检测用该类命名的第一个表...我需要它来为每个使用相同类命名的表执行任务。

我尝试了一些事情,但没有任何效果......有什么建议吗? 谢谢!

继承人我正在与

合作
  function start(){
     var list=document.getElementsByClassName("highlight");
     for(i=0; i<list.length; i++){
     var element= list[i].getElementsByTagName("tr");

for(i=0; i<element.length; i++)
{
    if (i%2 == 0) {
        element[i].className = "odd"
    }
    else{
        element[i].className = "even";
    }
  }
    }
  }

   window.addEventListener("load", start, false);

2 个答案:

答案 0 :(得分:1)

您需要在inner for语句中使用另一个变量。

在此处查看工作示例: http://codepen.io/anon/pen/wsCxG

window.onload = start;

function start(){
    var list=document.getElementsByClassName("highlight");

    for(i=0; i<list.length; i++)
     {
         var element= list[i].getElementsByTagName("tr");

        for(j=0; j<element.length; j++)
        {
            if (j%2 == 0) {
                element[j].className = "odd"
            }
            else{
                element[j].className = "even";
            }
          }
    }
}

答案 1 :(得分:0)

纯css3怎么样?

tr:nth-child(odd) {
 background-color: green;
}
tr:nth-child(even) {
 background-color: red;
}

突出显示

.highlight tr:nth-child(odd) {
 background-color: green;
}
.highlight tr:nth-child(even) {
 background-color: red;
}

例如

http://jsfiddle.net/RppAT/

如果你想要js(简写+ while - )

function OE(){
 var lists=document.getElementsByClassName("highlight"),listsLength=lists.length;
 while(listsLength--){
  var trs=lists[listsLength].getElementsByTagName("tr"),trsLength=trs.length;
  while(trsLength--){
   trs[trsLength].className=(trsLength%2==0)?'odd':'even';
  }
 }
}
window.onload=OE;