Using an array-index returns just the HTMLElement object and so removes a lot of jQuery's useful functionality, so be careful with that. I would tend to approach it this way:
var div = $("<div/>").appendTo($("<li/>").appendTo(ul));
From innermost to outermost, this creates a list item, appends it to your list, creates a div, appends it to your new list element, and returns the div, still wrapped in jQuery goodness. If you like, you can append an array index to get just the HTMLElement:
var div = $("<div/>").appendTo($("<li/>").appendTo(ul))[0];