如果一个PAGE里面有两个table,我想对第二个TABLE里的、大于第二行的、位于偶数索引位置的TR加样式,这个怎么写。
部分代码:<table width="160" border="1">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<br/> <table width="160" border="1">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>然后,我的写法是:$("table:eq(1) > tr:gt(2):even").addClass("tr");结果,没有成功。单独获取table:eq(1)可以,单独获取tr:gt(2):even也行,只是,从第一个TABLE里的一个特定位置的TR开始加载样式。所以请教一下大家,应该怎么表达好

解决方案 »

  1.   

    <script>
    var list=document.getElementsByTagName("table")[1].getElementsByTagName("tr");
    for(var i=0;i<list.length;i++)
    {
    if(i%2==0&&i!=0)
    {
    list[i].style.cssText="background:green";
    }
    }

    </script>
      

  2.   

    <style>
    .ttt{
    background:red;
    }
    </style>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.min.js"></script>
    <table width="160" border="1">
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    <br/><table width="161" border="1">
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table><script>$("table:eq(1) tr:gt(1):even").addClass("ttt");
    </script>
      

  3.   


      $("table:eq(1) tr:gt(2):even").addClass("ClassName");这样写应该可以吧
      

  4.   

    我是测试过再发出来的,你的意思大概是代码不太完整,没HTML又没BODY是吧,浏览器会自动加上的,当然实际使用的网页最好不要这样,这里的回复都是作为学习测试用,就随便吧。
      

  5.   

    话说jquery不用加$(function()})难道是写在元素下方的原因??
      

  6.   

    因为JS是解释执行的,前面的HTML DOM已经生成了后面就可以立马用JS对其进行操作了,你也可以写在DOM的前面或者放在HEAD里面然后用$(function(){})令该代码在所有的DOM都准备好后再执行,效果一样的。
      

  7.   


    是的,这么写是正确了。但是,那个符号的意义,我不是很理解 parent element > element 表示匹配根元素下指定的所有子元素吧,是这么理解吧,所以我一开始用大于号,怎么都出不来想要的结果
      

  8.   

    >是第一个匹配的元素,并且表单会自动加上tbody<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.min.js"></script>
    <table width="161" border="1">
    <tr>
    <td>1</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>2</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>3</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>4</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>5</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>6</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    <script>
    alert($("table > tbody >tr").html());
    </script>
      

  9.   

    body html标签什么的,我都省略了。我把空格和大于号箭头的意思给弄反了。一个是下一级所有的标签,包装成一个ARRAY返回,还有一个是返回第一个标签,包装成一个JS的OBJECT