如何使用jquery删除子元素

时间:2011-08-10 14:55:31

标签: jquery

我有名单。

<ul id="main">
   <li><a href="#">Blah ...</a></li>
   <li><a href="#">Blah ...</a></li>
   <li><a href="#">Blah ...</a></li>
   <li id="more">More
       <ul>
         <li><a href="#">Blah ...</a></li>
         <li><a href="#">........</a></li>
         <li><a href="#">........</a></li>    
       </ul> 
   </li>  
</ul>

主要列表显示给用户。当用户悬停更多列表项时。他看到更多列表的下拉列表。当用户点击更多列表中的列表项时。它应该替换主列表中的第三个孩子第三个项目将被添加到#more列表。

我感谢任何帮助。

4 个答案:

答案 0 :(得分:1)

这应该这样做:

$('#more li').click(function() {
    $('#main li').eq(2).replaceWith(this).appendTo('#more');
});

对于悬停,请查看http://api.jquery.com/hover/

答案 1 :(得分:0)

$('#more').hover(function(){$('#more ul').show();}, function(){$('#more ul').hide();});

$('#more li').click(function(){
    var thirdChild = $('#main li:eq(2)');
    thirdChild.replaceWith(this).appendTo('#more');
});

答案 2 :(得分:0)

这是工作demo

$(function(){

$('#more').hover(function(){
    $('#more ul').show();
}, function(){
    $('#more ul').hide();
});

$('#more li').click(function() {
    $('#more ul').append($('#main > li').eq(2))
    $('#more').before(this);
});

})

答案 3 :(得分:0)

<强> CSS

#more ul { display: none; }

<强>的Javascript

$('#more').hover(function() { $('ul', this).show(); },
                 function() { $('ul', this).hide(); });

$('#more li a').live('click', function() {    
    $(this).before($('#main > li:last-child').prev());
    $('#main > li:last-child').before(this);
});

工作示例:http://jsfiddle.net/FishBasketGordo/BAJXB/

编辑:我将click更改为上面live并删除了一些不必要的代码。