使用jQuery在祖先和后代之间插入元素
Insert element between ancestor and descendant using jQuery
我想转换
<div id="outer">
<div id="inner"></div>
</div>
进入
<div id="outer">
<div id="middle">
<div id="inner"></div>
</div>
</div>
我想保留在此之前设置的对div的任何引用,所以只做$("#outer").html($("+$("#outer"?
使用.wrap()
。。。
$('#inner').wrap('<div id="middle"></div>');
演示:http://jsfiddle.net/ENmDF/
您应该注意的是,尽管jQuery让它看起来像是在使用HTML,因为它接受像'<div id="middle"></div>'
这样的字符串来创建元素,但事实是,它接受您的字符串,使用它来创建DOM元素,然后将它插入到DOM中,将它和包装的部分放在各自的位置。
它在DOM API中与此类似。。。
var inner = document.getElementById('inner');
var middle = document.createElement('div');
middle.id = 'middle';
inner.parentNode.insertBefore(middle, inner);
middle.appendChild(inner);
演示:http://jsfiddle.net/ENmDF/1/
jQuery有另一种用于创建具有属性的元素的语法。也就是说,将一个对象作为第二个参数传递给$
函数,这样原始代码就可以这样写。。。
$('#inner').wrap($('<div>', {id:"middle"}));
演示:http://jsfiddle.net/ENmDF/3/
$("#inner")
.wrap(
$("<div>")
.prop("id", "middle")
);
工作方式与am not i am的答案相同,但这一个使用DOM创建封装它的div
元素
请注意,在设置id
属性后缺少分号(;
)。
演示。
此外,如果你喜欢的话,这里有一句话:
$("#inner").wrap($("<div>").attr("id","middle"));
相关文章:
- 在帖子的网格循环之间插入Javascript(Adsense)
- 在数组中的偶数之间插入连字符
- jquery多次在元素之间插入html
- 当数据库值为 NULL 时,如何在 XML 标记之间插入空格
- 单击时在文本之间插入图像节点
- 如何使用javascript在文本之间插入图像节点
- 使用 JavaScript 如何在行的现有
之间插入空白 标签 - 使用 javascript 在两个列表项之间插入下拉项
- 在两个 HTML 注释行之间插入内容
- 如何在两个连续的图像之间插入黑色空格
- 循环遍历 JSON,在对象之间插入键/值
- 如何在数组的元素之间插入空格,该数组作为 HTML 表单的输入读取
- REGEX-在html注释模式之间插入内容
- 使用jQuery在祖先和后代之间插入元素
- 在wordpress网站的帖子之间插入谷歌广告,并进行无限滚动
- Json-在数组元素之间插入一个新对象
- 通过在相乘的成员之间插入*使数学方程字符串有效
- 在summernote上传的图片之间插入br标签
- 如何在现有父级和子级之间插入DIV*
- 在索引x, y之间插入元素