HTML内容解析的变量

问题描述:

我有一个名为$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

您的字符串转换为一个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

我想,从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