如何使用jquery从字符串中删除具有特定类或id的div?

时间:2013-06-12 04:48:48

标签: jquery

我有一个字符串

var c = '<div class="main">
             <div class="child1">text 1</div>
             <div class="child1">text 2</div>
             <div class="child2">text 2</div>
         </div>';

现在我只想从此字符串中删除child2 ..

我试过这个

var $c = $(c).not('child2');

但它不起作用 任何机构都有解决方案。请让我知道

由于

3 个答案:

答案 0 :(得分:6)

试试这个:

var c ='<div class="main"><div class="child1"> text 1</div><div class="child1"> text 2</div><div class="child2"> text 2</div></div>';
var $c = $(c); //Get the JQ object to a var
$c.find('.child2').remove(); //Remove it from there
c = $c.html(); //Get back the html

不幸的是

$(c).find('.child2').remove()不会在源代码中删除它,因为它不在DOM中,只是一个字符串。因此,您需要将对象转换为临时变量,然后将其从中移除并从中取回html字符串。

Demo

答案 1 :(得分:0)

先使用$.parseHTML然后删除

var c ='<div class="main"><div class="child1"> text 1</div><div class="child1"> text 2</div><div class="child2"> text 2</div></div>';
c=$.parseHTML(c);
$(c).find('.child2').remove();
console.log($(c));

小提琴 http://jsfiddle.net/78m4J/

答案 2 :(得分:0)

没有jquery:

var tempDiv = document.createElement('div');
var c ='<div class="main"><div class="child1"> text 1</div><div class="child1"> text 2</div><div class="child2"> text 2</div></div>';
var removableChild = tempDiv.getElementsByClassName("child2")[0];
removableChild.parentElement.removeChild(removableChild);
var c = tempDiv.innerHTML;