删除外部div

时间:2012-09-11 21:05:27

标签: javascript jquery

在我的JavaScript代码中,我有一个字符串,其中包含:

var html = "<div class='outer'><div id='inner'>lots more html in here</div></div>";

我需要将其转换为字符串

var html = "<div id='inner'>lots more html in here</div>";

我已经在我的项目中使用jQuery了,所以我可以在必要时使用它。

5 个答案:

答案 0 :(得分:3)

尝试:

var html = "<div class='outer'>" 
         + "<div id='inner'>lots more html in here</div></div>";

html = $(html).html();

alert(html);

http://jsfiddle.net/TTEwm/

答案 1 :(得分:3)

为什么所有这些不必要的复杂答案?

//get a reference to the outer div
var outerDiv = document.getElementById('outerDivId');//or $('#outerDivId')[0];
outerDiv.outerHTML = outerDiv.innerHTML;

就是这样。只需将outerHTML设置为内部,而元素就不再存在。


由于我忽略了你正在处理一个HTML字符串,所以需要首先解析它:

var tempDiv = document.createElement('div');
tempDiv.innerHTML = htmlString;
var outerDiv = tempDiv.getElementsByTagName('div')[0];//will be the outer div
outerDiv.outerHTML = outerDiv.innerHTML;

你已经完成了。

答案 2 :(得分:2)

尝试.unwrap() -

$("#inner").unwrap();

答案 3 :(得分:0)

如果html字符串在您的示例中总是如此,则可以使用此简单代码

var html = "<div class='outer'><div class='inner'>lots more html in here</div></div>";
html = html.slice(19,-6)

答案 4 :(得分:0)

您可以这样做:

var html = "<div id='inner'>" + html.split("<div id='inner'>")[1].split("</div>")[0] + "</div>";

但您可能希望为变体添加更多保护(如果您有不使用相同约定编写代码的坏习惯),例如"inner"<DIV>

Demo