Вопрос

Как мне получить div из этого (последнего) элемента списка?

В настоящее время у меня есть это, что просто ужасно... есть какие-нибудь предложения по более чистому селектору/решению?

var div = ul.append("<li><div></div></li>").contents("li:last-child")[0].children[0];

Спасибо!

Это было полезно?

Решение

Использование индекса массива возвращает только объект HTMLElement и, таким образом, удаляет множество полезных функций jQuery, поэтому будьте с этим осторожны.Я бы подошел к этому так:

var div = $("<div/>").appendTo($("<li/>").appendTo(ul));

От самого внутреннего до самого внешнего, это создает элемент списка, добавляет его в ваш список, создает div, добавляет его к вашему новому элементу списка и возвращает div, все еще завернутый в jQuery.Если хотите, вы можете добавить индекс массива, чтобы получить только HTMLElement:

var div = $("<div/>").appendTo($("<li/>").appendTo(ul))[0];

Другие советы

Вы также можете добавить немного по-другому:

var div = $('<div/>'); 
// do whatever you need to do with the div
$('<li/>').appendTo(ul).append(div);

Так?

var div = ul.append("<li><div></div></li>").contents("li:last-child > div")[0];

Как насчет этого:

ul.append("<li><div></div></li>").contents("li:last-child > div").get(0);

Это, я думаю:

var div = ul.append('<li><div></div></li>').find("li:last div");

Как насчет этого:

 var div = $('<li><div/></li>').appendTo(ul).find('div');

просто для полноты:

var div = $('<div></div>').appendTo($("<li></li>").appendTo(ul));
var div = ul.append("<li><div></div></li>").find('div').get(0);

Я думаю, это то, что вы ищете.

Мое решение:

var div = ul.append("<li><div></div></li>").find("div:last");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top