2

我有一个字符串

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');

但它不起作用任何机构对此都有解决方案。请告诉我

谢谢

4

3 回答 3

8

尝试这个:

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 字符串。

演示

于 2013-06-12T04:53:05.467 回答
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/

于 2013-06-12T04:53:25.717 回答
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;
于 2013-06-12T04:55:58.070 回答