2015-02-06 30 views
0

我有一個選擇下拉菜單,我可以顯示/從我的腳本除了一個條件輸出。我遇到的麻煩是刪除/刪除由$ .each創建的行。我對js仍然很陌​​生,我在網上搜索解決方案,但仍然無法實現。這是我的代碼到目前爲止。jQuery處理來自ajax響應的錶行

<table id="view_programs" class="table table-striped table-bordered"> 
    <thead> 
     <tr> 
      <th>Year</th> 
      <th width="12%">Action</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr id="toBeRemoved"> 
      <td colspan="2">No program selected.</td> 
     </tr> 
    </tbody> 
</table> 

腳本

if(selectedValue == '') { 
    $("#delbutton").hide(); 

    $("#toBeRemoved td").remove(); 
    $("#toBeRemoved").append(
     $("<td colspan='2'>").html("No program selected.") 
    ).appendTo('#view_programs'); 
} 
else { 
    $.ajax({ 
     url: '<?php echo site_url("query.php");?>', 
     type: 'post', 
     data: {option: selectedValue}, 
     dataType: 'json', 
     success: function(response) { 
      $("#delbutton").show().attr("href", "delete/program/"+encodeURIComponent(selectedValue)); 

      if(jQuery.isEmptyObject(response)) { 
       $("#toBeRemoved td").remove(); 
       $("#toBeRemoved").append(
        $("<td colspan='2'>").html("No records found.") 
       ).appendTo('#view_programs'); 
      } 
      else { 
       var trHTML = ''; 
       $.each(response, function(key, value) { 
        trHTML += "<tr><td>"+value+"</td><td>"+value+"</td></tr>"; 
       }); 
       $('#view_programs').append(trHTML); 
      } 

      console.log(response); 
     } 
    }); 
} 

更新: 取得的成績,我想感謝西蒙先生對我的脫落一些輕。我懷疑我的代碼可能會更好,所以我願意接受任何建議。

改變了這種

<tbody> 
    <tr id="toBeRemoved"> 
     <td colspan="2">No program selected.</td> 
    </tr> 
</tbody> 

到此

<tbody class="toBeRemoved"> 
    <tr> 
     <td colspan="2">No program selected.</td> 
    </tr> 
</tbody> 

$('#view_programs').append(trHTML); 

到此

$('.toBeRemoved').append(trHTML); 

並把所有的#toBeRemoved到.toBeRemoved

+0

你能展示所有相關的html代碼嗎? – indubitablee 2015-02-06 14:03:58

+0

您總是從$(「#toBeRemoved」)中刪除,但yoyr每個函數都在$('#view_programs')中直接創建TR的問題 – nanndoj 2015-02-06 14:07:39

+0

問題不清楚,請明確提出代碼和問題,以便我們可以幫助您.. – Alok 2015-02-06 14:08:23

回答

1

你追加的錶行的#view_programs末,</tbody>元素之後,這意味着...所以他們沒有要刪除我猜#toBeRemoved ID ?

如果要刪除多行,請確保使用一個類(即.toBeRemoved)而不是一個id。只有一個元素是唯一標識符。

+0

Ohhhhhh你的第一句話就是這樣做的。它讓我感到輕鬆。我太專注於行本身。我現在開始工作了,但現在我開始認爲我的代碼可能會更好,嘿嘿。我更新了我的帖子,並顯示我改變了什麼。 – Meltdowner 2015-02-06 16:31:51