2010-02-04 2 views

ответ

11

Краткая и краткая версия.

$('a').click(function() { 
    $('ul').children().clone().appendTo('ul'); 
}) 

Конечно, вы можете определить свой «а» и 'Ульянова с классом или идентификатором для того, чтобы быть более конкретным.

EDIT:

Для расширения оговорки приведенной выше, это будет несколько хрупким решение, как это будет влиять на все элементы «а» и «уль». Возможно, это не так, как вы хотите.

Лучшая форма - предоставить классы html-элементов или идентификаторы, а затем присоединить события к ним.

Пример:

$('#myPopulateAnchorElement').click(function() { 
$('#myExpandableUL').children().clone().appendTo('#myExpandableUL'); 
}); 

<ul id='myExpandableUL'> 
    <li>item x</li> 
    <li>item y</li> 
    <li>item z</li> 
</ul> 
<a href="#" id='myPopulateAnchorElement'>Populate</a> 

С благодаря Ed Вудкоком для предполагая включение упреждающего раствора.

+0

Это очень сильно сломается, если на странице есть еще один UL. Это почти всегда плохая идея использовать jQuery без выбора классов или идентификаторов! –

+0

@ Эд Вудкок - Прочитайте остальную часть моего ответа ... Я работал с тем, что мне было дано, затем предложил указать «a» и «ul» с классом или идентификатором. – user113716

+0

Да, я не соглашался с вашим ответом, я просто заявлял, что плохо использовать селектор: проблема с отправкой полуправильного кода, как ваш ответ, заключается в том, что неопытный или запутанный будет использовать код, не читая остальные ответа, и это плохо! –

1

попробовать это:

 
$(function(){ 
    $('.anchorClass').click(function(){ 
     var ul = $('.ulClass'); 
     ul.append(ul.html()); 
    }); 
});

EDIT:

Вам нужно изменить HTML для:

 <ul class="ulClass"> 
    <li>item x</li> 
    <li>item y</li> 
    <li>item z</li> 
</ul> 
<a class="anchorClass" href="#">Populate</a>

0

Вы можете сделать что-то вроде этого:

$('a').click(function(){ 
    $('li').each(function(){ 
     $(this).clone().appendTo('your selector where to put the copy'); 
    }) 
}) 
1
var ul = $('ul'); 

$('a').click(function(){ 
    ul.children().clone(true).appendTo(ul); 
});