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 に答える