2013-03-08 94 views
1

我有一個名爲$reservas的變量,它包含一個帶有HTML表格的字符串。我想刪除部分表格(.tdRemove),之後我將它們分配給div #cenasHTML內容解析的變量

if ($reservas){ 
    $($reservas).find('.tdRemove').each(function(){ 
     console.log($(this).html()); 
     $(this).remove(); 
    }); 
    $("#cenas").html($reservas); 
} 

我試過這個,但它似乎沒有刪除任何東西。 我也試過: $($reservas).find('.tdRemove').remove();$($reservas).remove('.tdRemove'); 沒有什麼作品。有什麼建議麼?

有沒有什麼辦法可以告訴jQuery該變量是否包含html內容,應該如此解析?如果是這樣,怎麼樣? ..

+0

你可以發佈一個字符串樣子的例子嗎? – jcreamer898 2013-03-08 16:19:24

+0

@MarkWalters - 這段代碼'$($ reservas)'將HTML字符串轉換爲DOM元素,然後由jQuery對其進行操作。 – jfriend00 2013-03-08 16:31:28

回答

3

您的字符串轉換爲一個jQuery對象之後,它現在是一個系列在jQuery對象舉行DOM對象(在文檔片段)。在刪除該片段中的.tdRemove對象之後,您可以直接將其添加到您的DOM中。沒有必要去回HTML:

if ($reservas){ 
    var item = $($reservas); 
    item.find('.tdRemove').remove(); 
    $("#cenas").empty().append(item); 
} 

而且,你的代碼沒有工作,因爲$reservas字符串的HTML從未改變。

+0

好和易+1 – 2013-03-08 16:25:31

+0

什麼馬克說^。謝謝! – zettca 2013-03-08 16:36:13

0

我想,從documentation告訴我什麼,你只能remove()什麼已經在DOM裏面。

從DOM中刪除一組匹配的元素。

也許您想先添加您的表格,將其設置爲? display:none`,然後篩選要刪除的元素並最終顯示錶格。

if ($reservas) { 
    $("#cenas") 
     .hide() 
     .html($reservas) 
     .find('.tdRemove').each(function(){ 
      console.log($(this).html()); 
      $(this).remove(); 
     }) 
     .show(); 
} 
+0

這是不正確的。 '.remove()'適用於尚未插入到DOM中的文檔片段或元素。 – jfriend00 2013-03-08 16:27:16

+0

感謝您的輸入,我還不知道:) – mayrs 2013-03-08 16:29:24