2012-10-11 28 views
3

嗨,大家好我有一个包含HTML的jQuery var,我将其添加到页面。从包含HTML的变量中移除HTML元素

我需要在将HTML元素附加到页面之前删除HTML元素,但似乎无法对其进行过滤。

例如变量包含;

<div class="block1"></div> 
<div class="block2"></div> 

我试过像这样过滤之前我追加;

var mydata = $(mydata).filter('.block1'); 

var mydata = mydata.filter('.block1'); 

但这些工作。有什么建议么?

+0

'mydata'已设置在某处?您是否尝试过$(“div”)。filter('.block1')。remove();'或者$(“div”)。filter(return $(this).hasClass(“。block1”))卸下摆臂();'? – SpYk3HH

+0

运作良好。 http://jsfiddle.net/rns4h/ – xdazz

回答

1

过滤器直接应用于字符串有时会给出字符串结果,它可以安全地将元素添加到DOM然后应用过滤器。将html分配给DOM中的某个临时元素,从此临时元素获取过滤项目并将其分配给所需元素。

$('#TemporaryElemntToAddHtml').html(mydata); 

    $('#ElemntToAddHtml .block1').each(function(){ 
     $('#ElemntToAddHtml').append($(this)); 
    }); 

$('#TemporaryElemntToAddHtml').remove(); 
0

你试过.remove功能吗?

var mydata = $('<div class="block1"></div> 
       <div class="block2"></div>'); 
    mydata.remove('.block1'); 
+0

我想你''选择器'与'函数'混淆......只是为了正确。 – MarioDS

+0

那只是返回null? – Sam

+0

不,它应该删除.block1元素 –

1

尝试.remove()

$('.block1').remove(); 

OR

var mydata = $(mydata).remove('.block1'); 
+0

这只是返回mydata为空? – Sam

+0

什么是$(mydata)这里 –

0

使用splice原生方法在元素索引处删除并删除1项。

mydata.splice(mydata.filter('.block1').index(), 1); 

请注意,该拼接不会添加mydata = mydata.splice(..),因为这将返回已删除的元素。

否则使用jQuery的remove方法,因为有些人已经说过。