0

在以下内容中,我需要删除标记标签<div class="sub"></div> 但不是 jquery 的内容。这是为了使菜单适应响应式布局。

<nav id="top">  
<ul>
    <li class="ti" id="snw"> <a class="mm" href="/snowdepth/">Weather</a>
       <div class="sub">    

          <ul>
               <li><h2>Snowline</h2></li>
                <li><a href="/alpen/nordliche%20ostalpen/">Nordliche Ostalpen</a></li>    
         </ul>

      </div>
    </li>

    <li class="ti" id="blg"> <a class="mm" href="/live/">Weblog</a></li>
</ul>
</nav>
4

6 回答 6

1

尝试unwrap()

​$('.sub').find('ul').unwrap()​;

本质上,您正在寻找 的所有子元素.sub,并将它们展开或删除它们的父元素。

这是演示:http: //jsfiddle.net/yEseX/

于 2012-11-24T11:08:29.477 回答
0

你可以这样做。

现场演示

$('.sub').parent().html($('.sub').html());
于 2012-11-24T10:14:53.230 回答
0

假设您可能有多个 div 与 class sub,我建议这样做:

var container = $('#top');
container.html(
    container.html().split('<div class="sub">').join('').split('</div>').join('')
);
于 2012-11-24T10:15:23.090 回答
0

试试这个,

 var content = $(".sub").html(); // stored ".sub" div content
 $(".sub").remove(); // remove ".sub" div
 $("#top #snw").after(content); // insert content where you want
于 2012-11-24T10:51:47.317 回答
0

试试这个:

var list = $('#snw');
var html = list.html();
list.html(html.replace('<div class="sub">','').replace('</div>',''));

演示在这里

于 2012-11-24T10:54:52.977 回答
0

我认为@Abhilash 的答案是迄今为止最简洁的,但我会稍微修改选择器:

$('.sub').contents().unwrap();

这将删除所有.sub元素,将其内容保留在原处。

JsFiddle:http: //jsfiddle.net/yEseX/2/

于 2012-11-24T11:56:53.450 回答