如何从包含HTML的变量中删除HTML元素?

3
我可以帮您进行翻译。以下是要翻译的内容:

我有一个包含HTML的jQuery变量,我将其附加到页面上。

在将其附加到页面之前,我需要删除其中的HTML元素,但似乎无法筛选它。

例如,该变量包含以下内容:

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

在我添加之前,我尝试过这样的筛选:

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

并且

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

但是这些都没有起作用。有什么建议吗?

mydata 已经在某个地方设置了吗?你尝试过 $("div").filter('.block1').remove(); 或者 $("div").filter(return $(this).hasClass(".block1")).remove(); 吗? - SpYk3HH
运行良好。http://jsfiddle.net/rns4h/ - xdazz
5个回答

2

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

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

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

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

1
尝试使用.remove()
$('.block1').remove();

或者

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

这只会将mydata返回为空值? - Sam

0
你尝试过使用 .remove 函数吗?
  var mydata = $('<div class="block1"></div>
                 <div class="block2"></div>');
  mydata.remove('.block1');

我认为你把 selectorfunction 搞混了... 为了准确起见。 - MarioDS
@Mario De Schaepmeester,是的,已经修复。 - A. Agius
这似乎不起作用。我想知道它是否与从ajax请求返回的变量有关,但我看不出这个变量有什么不同。 - Sam
你是否将 AJAX 结果转换为 jQuery 元素?例如:$(myresult) - A. Agius

0
使用splice本地方法在元素索引处删除,并删除1个项目。
mydata.splice( mydata.filter('.block1').index(), 1 );

请注意,使用splice时不要添加mydata = mydata.splice(..),因为这将返回已删除的元素。
否则,可以使用jQuery的{{link1:remove}}方法,正如一些人已经提到的那样。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接