wrap()方法和子元素
wrap() method and child elements
当我这样做时:
myUl = $(document.createElement("ul"));
myLi = $(document.createElement("li"));
myUl.append(myLi);
myLi成为myUl的子元素。这很好。
当我这样做时:
myUl = $(document.createElement("ul"));
myLi = $(document.createElement("li"));
myLi.wrap(myUl);
然后myUl有0个子元素,即使DOM看起来是一样的。这正常吗?
.wrap
正在使用myUl
的克隆,而不是像.append
那样使用原始的。
当您考虑到在具有多个元素的jQuery对象上调用.wrap
将把每个元素封装在所传递内容的单独副本中时,这是有意义的。
更新:从你的其他评论来看,我认为你想做的是:
myLi = $(document.createElement("li"));
myLi.wrap('<ul>');
这(或一些类似的代码)将用动态创建的新UL来包装现有元素。
您可以使用$("<ul>")
而不是document.createElement
。。。例如:
$("<li>").wrap($("<ul>"));
我会采用这种方法,而不是像那样试图将myLi
包装在现有的myUl
对象中
var $li = $("<li>");
//added class for another short-hand example
$("<ul class='myClass'>").append($li);
假设您在页面上有一个现有元素,并且希望将其包装在新创建的JS对象中。。。
var $ul = $("<ul>");
$('#myLi').appendTo($ul)
//and if you want to clone it
$('#myLi').clone().appendTo($ul)
来自文档:
".wrapp()函数可以接受任何字符串或对象传递给$()工厂函数以指定DOM结构。这结构可以嵌套在几个级别深,但应该只包含一个最内在的元素。"
http://api.jquery.com/wrap/
您是否包装了多个<li>
?
相关文章:
- 用于检查数组中是否存在元素的javascript自定义方法
- 从数组中删除元素的最佳方法是:javascript/jquery
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 使用filter和map方法将数组中某些元素的第一个字母大写-JavaScript
- 任何一种简单的方法都可以将带有onload的元素作为目标
- 如何向Selectize元素添加渲染和创建方法
- 他们是如何使用angular/jqLite find()方法按属性名称和值选择元素的?ng conf 2015
- 在 JavaScript 数组中的所有元素之间穿插元素的简洁方法
- 列出没有 mysql 的元素的最佳方法是什么
- 使用Underscore.js修改json数组中所选元素的更有效方法
- 元素.appendChild()插入IE.变通方法?(与innerText与textContent相关)
- 选择具有值数组的所有元素的最有效方法
- 有什么方法可以在下一个元素上进行追加吗
- 使用javascript查找元素位置的最快方法
- javascript在html元素方法运行setTimeout后返回此消息
- 如何在 motools 中使用元素方法变形或补间延迟或设置杜累
- Safari javascript错误,试图定义“;删除“;元素方法
- 产卵,拖动SVG元素-方法
- 从列表中重新定义CRUD元素方法
- 在Angular / Ionic的父指令上触发DOM元素方法