【发布时间】:2010-09-27 00:06:57
【问题描述】:
如何从这个(最后一个)列表项中获取 div?
目前我有这个,简直丑陋...关于更清洁的选择器/解决方案有什么建议吗?
var div = ul.append("<li><div></div></li>").contents("li:last-child")[0].children[0];
谢谢!
【问题讨论】:
-
顺便说一句:为什么在 LI 中使用 DIV?
如何从这个(最后一个)列表项中获取 div?
目前我有这个,简直丑陋...关于更清洁的选择器/解决方案有什么建议吗?
var div = ul.append("<li><div></div></li>").contents("li:last-child")[0].children[0];
谢谢!
【问题讨论】:
你也可以做一些不同的添加:
var div = $('<div/>');
// do whatever you need to do with the div
$('<li/>').appendTo(ul).append(div);
【讨论】:
使用数组索引只返回 HTMLElement 对象,因此删除了许多 jQuery 的有用功能,所以要小心。我倾向于这样处理:
var div = $("<div/>").appendTo($("<li/>").appendTo(ul));
从最里面到最外面,这会创建一个列表项,将其附加到您的列表中,创建一个 div,将其附加到您的新列表元素,然后返回 div,仍然包裹在 jQuery 中。如果你愿意,你可以附加一个数组索引来获取 HTMLElement:
var div = $("<div/>").appendTo($("<li/>").appendTo(ul))[0];
【讨论】:
像这样?
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);
我想这就是你要找的。p>
【讨论】:
我的解决方案是:
var div = ul.append("<li><div></div></li>").find("div:last");
【讨论】: