如何使用jquery从列表中删除项目?

时间:2014-05-22 05:30:43

标签: javascript jquery html

我的输出内容如下

<ul>
    <li>
        Songs
        <ul>
             <li>
                 Genre
                 <ul>
                     <li>
                         Country
                     </li>
                 </ul>
             </li>
        </ul>
    </li>
</ul>
<ul>
    <li>
        Songs
        <ul>
             <li>
                 Genre
                 <ul>
                     <li>
                         Pop
                     </li>
                 </ul>
             </li>
        </ul>
    </li>
</ul>

请忽略为何内容如此显示。我的问题是,我如何使用jQuery删除重复的父母<li><ul>所以它看起来像这样

<ul>
    <li>
        Songs
        <ul>
             <li>
                 Genre
                 <ul>
                     <li>
                         Country
                     </li>
                     <li>
                         Pop
                     </li>
                 </ul>
             </li>
        </ul>
    </li>
</ul>

我尝试过unwrap()方法,但不知道将<li>置于应有的位置的逻辑。

2 个答案:

答案 0 :(得分:4)

尝试,

var uls = $('ul');
uls.first().find('ul:last').append(uls.last().find('li:last'));
uls.first().siblings('ul').remove();

DEMO

答案 1 :(得分:0)

我会得到我需要的东西并重新编写它,假设整个事物周围有某种容器只是重写中间。代码可能更干净,但效果很好。

<div>
<ul>
    <li>
        Songs
        <ul>
             <li>
                 Genre
                 <ul>
                     <li>
                         Country
                     </li>
                 </ul>
             </li>
        </ul>
    </li>
</ul>
<ul>
    <li>
        Songs
        <ul>
             <li>
                 Genre
                 <ul>
                     <li>
                         Pop
                     </li>
                 </ul>
             </li>
        </ul>
    </li>
</ul>
</div>

<script>
var li='';
$.each($("li:contains('Genre') ul li"), function(i, e){
  item=$(e).children('ul').text().replace(/\n/g,'').trim()||'';
    if (item.length!=0){
        li+='<li>'+item+'</li>';
    };
});

if (li.length!=0){
    var html='<ul><li>Songs<ul><li>Genre<ul>'+li+'</ul></li></ul></li></ul>';
    $('div').html(html);
};
</script>

演示: http://jsfiddle.net/886P3/