2015-06-24 18 views
1

我有以下代碼。它應該隱藏onClick函數的成功行。不幸的是,它並沒有隱藏任何東西。我已經看到了這個問題,嘗試瞭解決方案,沒有任何效果。JQuery在ajax上隱藏表格行發佈結果

<script type="text/javascript"> 
    function deleteMsg(row,msgId) { 
     //window.alert("deleteMsg(" + msgId + ")"); 
     $.ajax({ 
      type: "POST", 
      url: "http://localhost:8080/ArcheryScoresV3/profile.jsp", 
      data: { cmd:"delete_msg", 
       s_token:"dn1ejdmj0dkmgerbm481adkjt0", 
       message: msgId }, 
      dataType: "json", 
      success: function(msg, status, jqXHR){ 
       if(msg.success == "true") { 
       window.alert("successfull, hiding " + row.id); 
       //$(this).parents("tr").hide(); 
       //$(row).hide(); 
       row.css("background-color", "red"); 
      } else { 
       window.alert("unsuccessfull"); 
      } 
      },    
      error: function(xhr,status,error){ 
       window.alert("error, status:" + error); 
      } 
     }); 
    } 
    </script> 
    <tr id="row1"> 
     <td><span onClick="deleteMsg($('row1'),'0ed71375-226e-49ae-aa14-00fbb1f7ed11');" 
        class="glyphicon glyphicon-trash"> 
      </span> 
     </td> 
    </tr> 

成功警報顯示出來,所以正在執行的代碼,但我從來沒有看到任何東西消失,甚至改變顏色。所有的評論變體都沒有成功。必須有一些基本的誤解。

+0

如果你想通過ID得到你必須使用$('#row1') –

回答

1

你的選擇是錯誤的。 onclick = "deleteMsg($('#row1'))」 你忘了一點‘#’

+0

像我想.. ..東西基本..像$('row1')而不是$('#row1 ') 現在工作像魅力.. – Thomas

+0

我會stil我想知道爲什麼所有其他的東西像$(this).closest('tr')不起作用。似乎這不是我所期望的。這個點在deleteMsg函數中指向哪個元素? – Thomas

+0

'this'總是給出'從'調用的'context',這裏調用方法的對象是你的'span',因此'this'應該指'span'。我不能肯定地說爲什麼$(這個)不起作用,理想情況下它應該。在您的successCallback中使用console.log這個'this'。如果可能,請爲此創建一個小提琴。等着瞧。 :) – Amit

0

你只需要添加#在您的jQuery選擇:

<tr id="row1"> 
    <td> 
     <span onClick="deleteMsg($('#row1'),'0ed71375-226e-49ae-aa14-00fbb1f7ed11');" 
      class="glyphicon glyphicon-trash"> 
     </span> 
    </td> 
</tr> 

然後,你可以使用row.hide();success功能隱藏塊(而不是$(row).hide();像你試過)