仅显示表中的某些列

时间:2013-05-28 22:26:09

标签: javascript html ajax responsetext

一直在寻找答案但没有找到答案。我有一个代码,显示一个基于参数“rg1”从服务器端genqueuesearch.php拉出的表。每行都有一个名为Queue的列,其中包含一个“rg1”字符串。该表有几列,但我的挑战只显示4列。这是我的AJAX代码:

<html>
<head>
<script language="Javascript">
   function View(){
   ...
      xmlhttp.onreadystatechange=function(){
         if (xmlhttp.readyState==4 && xmlhttp.status==200){
            document.getElementById("datatable").innerHTML=xmlhttp.responseText;    
         }
      }

      var parameters = "search="+"rg1";
      xmlhttp.open("POST", "http://drcsblr0165/genqueuesearch.php", true);
      xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      xmlhttp.send(parameters); 
   }
</script>
</head>

   <body onload="View()">
      <div id="datatable" align="center"></div>
   </body>

</html>

尝试了getElementsbyTagName,但我不知道我想要的列的标记名称。这是否需要先将表保存到文本文件中?我感谢您的帮助,请问我是否不清楚。

1 个答案:

答案 0 :(得分:0)

由于您无法改变服务器提供给您的内容,因此我们仅限于使用JavaScript解决此问题。我建议你使用jQuery,因为它会让你的事情变得更简单。

jQuery利用CSS选择器模式在DOM中查找元素。您可以利用它来选择要隐藏的表格中的哪些列。即使您不知道它们的名称,您甚至可以选择特定的列。

说,你从服务器上取回这样一张桌子并将它放在<div id="datatable">中:

<div id="datatable" align="center">
    <table>
        <tr>
            <td>dataRow1Col1</td>
            <td>dataRow1Col2</td>
            <td>dataRow1Col3</td>
            <td>dataRow1Col4</td>
        </tr>
        <tr>
            <td>dataRow2Col1</td>
            <td>dataRow2Col2</td>
            <td>dataRow2Col3</td>
            <td>dataRow2Col4</td>
        </tr>
        <tr>
            <td>dataRow3Col1</td>
            <td>dataRow3Col2</td>
            <td>dataRow3Col3</td>
            <td>dataRow3Col4</td>
        </tr>
        <tr>
            <td>dataRow4Col1</td>
            <td>dataRow4Col2</td>
            <td>dataRow4Col3</td>
            <td>dataRow4Col4</td>
        </tr>
    </table>
</div>

例如,使用:nth-child选择器不需要您知道名称,$('#datatable td:nth-child(3)').hide();将选择第3列并隐藏它。 (见例:http://jsfiddle.net/Cjsua/

您可以在jQuery文档中找到更合适的选择器:http://api.jquery.com/category/selectors/

.hide()函数只隐藏匹配的元素。