检查JavaScript中表的任何行中是否存在类

时间:2011-02-18 17:22:33

标签: javascript css html-table

我有一张桌子(简化了这个问题):

<table><br>
  <tr onclick="selectRow"><br>
    <td>table data</td><br>
    <td>table data</td><br>
    <td>table data</td><br>
  </tr><br>
  <tr class="selected" onclick="selectRow"><br>
    <td>table data</td><br>
    <td>table data</td><br>
    <td>table data</td><br>
  </tr><br>
</table>

class="selected"是点击该行的结果。 我想创建一个按钮,当单击时,如果有一行“选定”,则返回true,如果没有,则返回false。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:3)

function checkExist(){
       var myTr = document.getElementsByTagName('tr');

       for(var i=myTr.length; i--;){
           if(myTr[i].className.match('(^|\\s+)selected(\\s+|$)')){
               alert('true');//return true;
               return;
           }
       }
       alert('false'); //return false
}

并基本上附加到这样的按钮或链接:

<table>
    <tr onclick="selectRow">
        <td>table data</td>
        <td>table data</td>
        <td>table data</td>
    </tr>
    <tr class='selected' onclick="selectRow">
        <td>table data</td>
        <td>table data</td>
        <td>table data</td>
    </tr>
</table>
<a href='#' onclick='checkExist()'>click me to find out</a>

答案 1 :(得分:2)

如果你可以使用jQuery:

http://api.jquery.com/hasClass/

答案 2 :(得分:2)

你考虑过使用图书馆吗?使用jQuery可以像http://jsfiddle.net/andersand/QAb4s/

一样简单

我的经验是,通过使用JS框架,我不必担心跨浏览器兼容性,同时也提高了开发速度

答案 3 :(得分:0)

不使用外部库,您必须执行以下操作:

  1. 获取表格中的所有行并开始循环遍历
  2. 检查班级的每一行的className属性(selected)。
    • 如果你只处理一个班级,你可以比较:
      tr.className === 'selected'
    • 如果某行可以有多个类,则可能需要使用正则表达式。像/\bselected\b/
    • 之类的东西
  3. 一旦获得匹配,取消循环并立即返回
  4. 为了额外的功劳,您可以将所有这些放入一个函数中,该函数将获取您正在查找的类以及作为参数的表。

    星期一早上首先要完成作业。