CSS selector for targeting only immediate children and not other identical descendants

前端 未结 2 779
心在旅途
心在旅途 2020-11-29 10:12

I have a nested sortable list that can have items dynamically added or removed and can be nested n-levels deep. On nesting, a new ul element is injected into whatever li ele

2条回答
  •  执念已碎
    2020-11-29 10:44

    ul > li
    

    only does the immediate children. So, for example, to do only the top level list elements you could use:

    #parent > li
    

    Note: this isn't supported on IE6.

    The common workaround for backwards compatibility is to do something like this:

    #parent li { /* style appropriately */ }
    #parent li li { /* back to normal */ }
    

    It's more tedious because you have to apply styles and then turn them off (and you may not necessarily know what the old values are) but it's the only IE6-friendly pure CSS workaround there is.

    Edit: Ok you have a MooTools specific issue. getElements() returns all descendants, not just immediate children. Try using getChildren().

    var drop = function(el){
        el.getParents('ul').reverse().each(function(item){
            var posCount = 1;
            item.getChildren("li").getElements("a span[class=position]").each(function(pos){
                    pos.set('text', posCount);
                    posCount++;
            });
        });
    }
    

    or something like that.

提交回复
热议问题