3

我有一个 jQuery var,其中包含要附加到页面的 HTML。

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

例如变量包含;

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

我在附加之前尝试过这样的过滤:

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

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

但这些都不起作用。有什么建议么?

4

5 回答 5

2

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

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

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

$('#TemporaryElemntToAddHtml').remove();
于 2012-10-11T16:08:24.127 回答
1

尝试 .remove()

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

或者

var mydata = $(mydata).remove('.block1');
于 2012-10-11T16:03:18.220 回答
0

您是否尝试过 .remove 功能?

  var mydata = $('<div class="block1"></div>
                 <div class="block2"></div>');
  mydata.remove('.block1');
于 2012-10-11T16:03:12.600 回答
0

$.filter 不会做你认为它做的事情。

http://api.jquery.com/filter/

我会尝试 $(mydata).remove('.block1');

于 2012-10-11T16:04:15.163 回答
0

使用splice native 方法在元素索引处移除,移除 1 项。

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

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

否则使用一些人已经说过的 jQuery 的remove方法。

于 2012-10-11T16:14:14.597 回答