0

我很难找到解决这个问题的方法。我有 Wordpress 的这个 ul-menu 输出:

<ul class="menu">
    <li>
        <a href="#">Page 1</a>
    </li>
    <li>
        <a href="#">Page 2</a>
    </li>
</ul>

但我希望最终结果是这样的 - 克隆并附加锚并在下面放置一个克隆:

<ul class="menu">
    <li>
        <a href="#">Page 1</a>
        <a href="#">Page 1</a>
    </li>
    <li>
        <a href="#">Page 2</a>
        <a href="#">Page 2</a>
    </li>
</ul>

我使用过 jQuery——但在 2 小时的反复试验中,我一点运气都没有。这是我能得到的最接近的。但这是错误的。

/*jQuery*/
$('.menu li a:first-child').eq(0).clone().insertAfter('.menu li a:first-child');

在这里小提琴:http: //jsfiddle.net/67jXz/1/

4

2 回答 2

4

你不应该这样做.eq(0);这会将其限制为a匹配的第一个元素,因此将在每个后续元素之后克隆和插入a,从而生成“第 1 页”的副本。

相反,您需要通过迭代来为每个单独的元素.each()执行克隆和插入,如下所示:

$('.menu li a:first-child').each(function() {
    $(this).clone().insertAfter(this);
});

注意.insertAfter(this)部分是指在选择器匹配到的原始元素之后.menu li a:first-child插入克隆的元素;与引用匹配的元素相同this$(this)

更新的小提琴

于 2013-01-16T18:17:11.400 回答
0

试试这个代码:

$(function(){
  $('.menu li a:first-child').each(function(k,v){
    $(v).clone().insertAfter(v);
  });
});

jsfiddle

于 2013-01-16T18:19:04.813 回答