0

nested listsの HTML ページでは、これらのリストは、行と子をリスト ノードに追加する操作をユーザーに提供する jQuery コードによって管理されます。すべてのリストにはdiv、新しいリストを子として追加するために使用される を含めることができます。私の問題は、作成できる要素の奥深くに動的リミッターを追加したいということです。

<ul>
    <li>
        <ul>
            <li><div class="add-child"></div></li>
            <li><div class="add-child"></div></li>
            <li><div class="add-row"></div></li>
        </ul>
    </li>
    <li><div class="add-child"></div></li>
    <li><div class="add-child"></div></li>
    <li><div class="add-row"></div></li>
</ul>

ディープは将来変更される可能性がありますa max of 3 levels of deepness.

$('li li li .add-child').remove();

しかし、PHP を介してディープを設定し、jQuery を介して制限する動的なソリューションが必要です。これに対する私のアプローチはどうすればよいでしょうか?

4

2 に答える 2

3
$('.add-child')
    .filter(function(){
        return $(this).parents('li').length > 2;
    })
    .remove();

プラグインは必要ないとおっしゃいましたが、我慢できませんでした:D

$.fn.filterIfHasNParents = function(n, selector){
    var depth = n || 1;
    return $(this).filter(function(){
        return $(this).parents(selector || '').length > depth - 1;
    });
}

そして、それを次のように使用します:

$('.add-child').filterIfHasNParents(3, 'li').remove();
于 2013-01-01T18:17:21.427 に答える
2

このようなことを意味しますか?

$( '.add-child' ).each( function() {
    if( $( this ).parents( 'li' ).length > someDepthSetByPHP )
    {
        $( this ).remove();
    }
} );

jsfiddle の例

于 2013-01-01T18:17:34.903 に答える