2013-05-28 116 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