2

私のページには、<article>コンテナからすべてをアンラップし、その後、それぞれを別々にラップするボタンがあります<section>。私の質問は、ボタンをクリックしてそのアクションを元に<article>戻し、すべてのグループが最初と同じ位置に戻るようにすることが可能かどうかです。

私は例を作成しました:

http://jsfiddle.net/JCERK/9/

4

5 に答える 5

4

<article>各タグに、タグが含まれているものを識別するものを事前にマークする必要があります<section>。これをタグに入れると、次のようになりclassます。

$('article').addClass(function() {
    return 'section-' + $(this).parent().index();
});

それらをラップバックするときは、でグループ化する必要がありますclass

$('#wrapback').click(function() {
    $('article').unwrap();
    for (var i = 0; i < sections; ++i) {
        var articles = $('article.section-' + i);
        articles.wrapAll('<section/>');
    }
});​

http://jsfiddle.net/alnitak/QKLkV/での作業デモ

于 2012-07-23T13:08:46.820 に答える
3

私のメソッドは jQuery.clone();メソッドを使用するだけです。

参考:jsFiddle

jQuery コード:

var oldWrap = $('#wrapper').clone();


$('#unwrap').click(function() {
    $('article').unwrap();
    $('article').wrap('<section></section>');
});

$('#wrapback').click(function() {

    $('#wrapper').replaceWith(oldWrap);
    oldWrap = $('#wrapper').clone();

});
于 2012-07-23T13:13:47.503 に答える
2

いくつかの属性または.dataをそれぞれarticleに追加してグループ化してから、 を使用して.wrapAllください。

おそらく最も簡単な方法はaddClass、ループのインデックスを使用することです。これにより、特定のクラスで.eachすべてをすばやく見つけてarticles、それらをまとめてラップすることができます。

1 つの実装:

$('#unwrap').on('click', function() {
    $('section').each(function(i, el) {
        $(this).find('article').addClass('_index_'+i).unwrap();
    });
    $('article').wrap('<section></section>');
});

$('#wrapback').on('click', function() {
    var idx = 0;
    while ($('article._index_' + idx).length) {
        $('article._index_' + idx).unwrap().wrapAll('<section>');
        idx += 1;
    };
});​

http://jsfiddle.net/mblase75/JCERK/14/

于 2012-07-23T13:14:59.617 に答える
0

を使用してそれらを再ラップできます.wrapAll

基本的なコードは次のようになります。

デモ: http: //jsfiddle.net/SO_AMK/UhWqa/

jQuery:

$('#unwrap').click(function() {
    $('article').unwrap()
    $('article').wrap('<section></section>')
})
$("#wrapback").click(function() {
    $("article").unwrap().wrapAll("<section></section>");
});​

HTML:オリジナル

CSS:オリジナル

于 2012-07-23T13:09:40.717 に答える
0

jquery.wrapAll()が必要ですが、記事の各グループを区別する必要があります(divでラップするなど)。そうでない場合、wrapAllメソッドはすべての記事を1つにラップします。section

于 2012-07-23T13:11:30.607 に答える