Javascript JQuery-如何:复制<;李>;并将其放在<;ul>;
我有一个普通的ulli。 我想在列表中附加一个li,它基于列表中的第一个li html 这就是它看起来的样子:Javascript JQuery-如何:复制<;李>;并将其放在<;ul>;,javascript,jquery,copy,duplicates,html-lists,Javascript,Jquery,Copy,Duplicates,Html Lists,我有一个普通的ulli。 我想在列表中附加一个li,它基于列表中的第一个li html 这就是它看起来的样子: <div id="gallery"> <ul> <li>Point Nr 1<p>lol</p></li> <li>Point Nr 2</li> <li>Point Nr 3</li> <li>Point Nr 4</li> <li&g
<div id="gallery">
<ul>
<li>Point Nr 1<p>lol</p></li>
<li>Point Nr 2</li>
<li>Point Nr 3</li>
<li>Point Nr 4</li>
<li>Point Nr 1<p>lol</p></li>
</ul>
</div
- 点Nr 1lol
- 第2点
- 第3点
- 第4点
- 点Nr 1lol
应该是:
var $gallery = $('#gallery');
$gallery.find('li:first').clone(true).appendTo($gallery.find('ul'));
例如:
参考资料:我想应该是
var ul = $('#gallery ul');
ul.find('li:first').clone(true).appendTo(ul);
var ul=$(“#画廊ul”);
ul.find('li:first')。clone(true)。appendTo(ul);
这是错误的,这将是非常危险的IE系列,因为你是复制的第一个李,这是好的,但你是附加到div,而不是ul。因此,附加的li标记不与ul嵌套。这对于W3C来说不是有效的HTML,为了IE,应该避免类似的事情。@Fatih:事实上,我忘记了.find()
我认为,您的代码不是一个好的实践,因为您使用了.find()两次,这不是必需的。为什么你是从母公司部门深化,尽管是从ul深化。这样,您就不会在代码末尾再次找到ul了。@Fatih:好吧,因为我正在对缓存的引用调用.find()
,这种情况是以光速发生的,而且您仍然有一个对父div
的活动引用。实际上,重新查询一个已经查询过的元素被认为是不好的做法。除非有必要,否则您真的应该使用缓存。
var $gallery = $('#gallery');
$gallery.find('li:first').clone(true).appendTo($gallery.find('ul'));
var ul = $('#gallery ul');
ul.find('li:first').clone(true).appendTo(ul);