克隆&将所有链接附加到容器

时间:2016-03-18 14:38:00

标签: javascript jquery html

我想要"克隆全部"按钮克隆&将每个链接附加到#container。

但是,当您立即点击该按钮时,它只会在文档(www.google.com)中创建第一个链接的3个克隆,并跳过其他两个(www.facebook.com& www.youtube.com )。

我非常确定我需要使用数组。我试图将一个类(' .link')存储在一个数组中,我尝试使用each()方法 - 但我无法使其工作: - /

CodePen: http://codepen.io/StrengthandFreedom/pen/eZgbKq/

jQuery的:

var links = $('.link');
var hrefs = $(links).attr('href'); // grab a href attribute from links
var cloneAllLinks = $('.btn-clone-all-links');

$(cloneAllLinks).on('click', function(event) {

  $(links).clone().text(hrefs).append('<li></li>').appendTo('#container');

});

有人能告诉我我在这里失踪了吗? : - )

1 个答案:

答案 0 :(得分:2)

您需要将每个href属性值存储在数组中:

var linkArray = $('.link').map(function(index, link) { return $(link).attr('href'); });

然后,您可以遍历此数组,将每个项目写出到#container div:

$(cloneAllLinks).on('click', function(event) {
    $.each(linkArray, function(index, val){
        var linkTemplate = '<li>' + val + '</li>' 
        $('#container').append(linkTemplate);
    })
});

请参阅http://codepen.io/anon/pen/GZrzba