2012-02-10 79 views
0

为什么以下内容不能删除类别hiddendiv无法从不在DOM中的对象中删除HTML元素

var data = 'This is a message <div class="hidden"> <ul id="canceledOrders"> <li>502301</li> </ul> </div>'; 
$(data).find(".hidden").remove(); 

运行上面,data的值后保持不变。 div是不是因为data不在DOM中而被删除?

回答

3

您从$()创建的DOM树中删除了该元素。
这并不影响它从中解析出来的字符串。

你需要得到新修改DOM树的HTML源代码:

var data = ...; 
var tree = $("<div>" + data + "</div>"); 

tree.find('.hidden') 
    .remove(); 

data = tree.html(); 

进行更详细的说明,请参见my blog