2013-05-28 86 views
0

正在搜索答案但未找到答案。我有一个代码,显示一个基于参数“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试过,但我不知道我想的列的标记名称。这是否需要首先将表格保存到文本文件?我感谢你的帮助,并请问我是否不清楚。

+0

是否有一个原因,你想通过AJAX传递你的表格HTML的字符串表示?我建议以JSON格式传递数据,然后在JavaScript中创建表格HTML并控制要输出的列。 – sweetamylase

+0

我是AJAX的新手,并且从未用JSON编码。您能否详细说明或显示示例代码?我愿意学习JSON来实现这一点。感谢您的指导。 – user2430338

+0

只需阅读JSON。我从显示HTML表格的远程服务器提取数据,因此不知道有关要显示的列的任何信息。如果表位于我的服务器上,这很容易。我在这里错过了什么吗? – user2430338

回答

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()功能只是隐藏匹配的元素。

+0

玩过这个$('#datatable td:nth-​​child(3)')。hide();这就是我要找的,但是在我的代码中$('#datatable td:nth-​​child(3)')。hide();插入?对不起,这是一个愚蠢的问题,但我是一个noob。 – user2430338

+0

@ user2430338一个好的地方是你在页面上创建了你的表之后,所以在行'document.getElementById(“datatable”)。innerHTML = xmlhttp.responseText;' – sweetamylase

+0

现在我无法访问服务器,所以我我用我在单元格中输入的数据创建的表格。我插入$('#datatable td:nth-​​child(3)')。hide(); after document.getElementById(“datatable”)。innerHTML = xmlhttp.responseText;它不会隐藏第三列=(。 – user2430338