0

尝试复制.postNav页面上的第一个并用它替换所有后续导航。我已经简化了它并且逻辑似乎正确,但是该函数仅在我传递字符串而不是元素时才有效。

JS小提琴!http://jsfiddle.net/cwMhh/1/

HTML:

<nav class="postNav">
    <ul>
        <li><a href="#pageHeader">link to header</a></li>
        <li><a href="#one">link to other posts</a></li>
        <li><a href="#two">link to other posts</a></li>
        <li><a href="#three">link to other posts</a></li>
        <li><a href="#four">link to other posts</a></li>
        <li><a href="#five">link to other posts</a></li>
    </ul>
</nav>

JavaScript:

$('.postNav:gt(0)').each(function(){
    $(this).replaceWith($('.postNav:eq(0)'));
});
4

2 回答 2

1

你必须.clone()元素:

$('.postNav:gt(0)').replaceWith(function () {
    return $('.postNav:first').clone();
});

为了获得更好的性能,缓存选择器:

var $navs = $('.postNav'),
    $replaceWith = $navs.first();

$navs.not( $replaceWith ).replaceWith(function () {
    return $replaceWith.clone();
});
于 2012-09-11T03:12:09.907 回答
0
var replaceHTML = $('.postNav:first').html();
$('.postNav:gt(0)').each(function(){
    $(this).replaceWith(replaceHTML);
});
于 2012-09-11T03:10:50.610 回答