克隆数组?

时间:2018-10-03 22:17:57

标签: javascript jquery arrays

我有一个个人资料页面,其中包含一堆照片,每张照片都有一个指向完整生物描述的弹出链接。在每张照片的下方,用h3包裹的是个人资料页面上每个人的名字。我正在尝试从图片中获取弹出链接,并将其添加到照片下方的名称中,以便我可以从标题以及个人资料照片中触发弹出窗口。

弹出窗口的工作方式是将定位标记放在照片的顶部,因此它不会包装图像。取而代之的是,它的大小与图片相同,并使用CSS放置在图片上方。因此,我想做的就是从图像中拉出定位标记,并将其分配给将名称包裹在图像下方的<span>

为此,我已将所有个人资料图像链接数据添加到一个数组中,并设法遍历弹出链接并将它们添加到个人资料名称之前。这是问题所在,现在图像链接不再起作用。

在研究此修复程序时,我遇到了我认为可以使用的clone()函数,但显然不适用于数组。

所以我对此有些迷茫。关于如何解决这个问题有任何想法吗?任何帮助将不胜感激。

这是我到目前为止所拥有的:

(function($){
    var profileImgLink = $('.grve-item-url.grve-image-popup'),
        titleLink = $('h3.titleheader'),
        titleWrapper = titleLink.children('span'),
        attributes = profileImgLink.prop('attributes'),
        arr = profileImgLink.toArray();

        $.each(arr, function(index){

            titleWrapper.each(function(index){

                $(this).prepend(arr[index])

            });

        });

})(jQuery);

编辑:Heretic Monkey提供了解决此问题的解决方案。他指出,我可以将clone()方法添加到我设置的数组变量中,从而解决了该问题。所以这个问题已经回答了。

1 个答案:

答案 0 :(得分:2)

尝试一下:

(function($) {
    $('.grve-item-url.grve-image-popup').each(i, element){
        var $link = $(element);
        var $clonedLink = $link.clone();    
        $link.closest("h3.titleheader").children('span').prepend($clonedLink);
}})(jQuery);