修改 HTML 的对象“树”
Modifying an HTML's "tree" of objects?
假设我有一个简单的结构,如下所示:
<div id="A">
<div id="B">
<div id="C"> </div>
</div>
</div>
<div id="X"> </div>
例如,是否有可能以某种方式(javascript,css,jQuery)改变C的位置并使其成为X的子级?描述这种情况的术语是什么?
这是可能的。如果你不想依赖任何库,你可以这样做:
document.getElementById('X').appendChild(document.getElementById('C'));
这里的诀窍是 HTML 元素最多可以存在于树中的一个位置,但 DOM 为我们处理这个问题。既然你告诉它让 C 成为 X 的孩子,但 C 已经是 B 的孩子,DOM 知道让 C 不再是 B 的孩子。这一切都作为单个操作处理,因此页面只需重排一次,这对性能有好处。
是否有可能,以某种方式(javascript,css,jQuery)
是的,这是可能的。您可以使用以下任一javascript, css, jQuery
你可以试试这个 - 使用jquery
的例子
$(function () {
$("#X").append($("#C").clone());
$("#C").remove();
});
演示该示例使用克隆、追加和删除jquery
方法
使用 jQuery。
var el = $("#c").clone();
$("#x").append(el);
var c = document.getElementById('C'),
x = document.getElementById('X');
x.appendChild(c);
您可以轻松操作 DOM。你可以在jQuery中非常轻松地做到这一点
$("#X").appendTo("#C");
您可以在以下位置找到更多信息
http://api.jquery.com/append/
是的,试试这个:
var c = document.querySelector('#C');
var x = document.querySelector('#X');
c.parentNode.removeChild(c);
x.appendChild(c);
<div id="A">
aa
<div id="B">
bb
<div id="C">cc</div>
</div>
</div>
<div id="X">xx</div>
这是可能的,但我不确定这是怎么称呼的。
您可以尝试此脚本。
var c = document.querySelector("#C");
document.querySelector("#X").appendChild(c);
事实上,这是
可能的:
$("#X").append($("#C"));
或
$("#C").appendTo($("#X"));
jQuery提供了多种DOM操作方法。你应该检查一下。
演示:
$(document).on('click', '#rearrange', function () {
$("#X").append($("#C"));
});
div { padding: 10px; }
#A { background-color: red; }
#B { background-color: blue; }
#C { background-color: green; }
#X { background-color: yellow; }
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type='button' value='Move C' id='rearrange' />
<div id="A"> A
<div id="B"> B
<div id="C"> C </div>
</div>
</div>
<div id="X"> X</div>
您可以使用 CSS 将其放置在外部div#X 内。更多关于位置的信息
div {
width: 100px;
height: 100px;
}
#A {
background: #abcdef;
}
#B {
background: #666;
}
#C {
background: green;position: absolute; top: 110px; left: 10px;
}
#X{
background: orange; padding: 10px;
}
<div id="A">
<div id="B">
<div id="C">Inner div</div>
</div>
</div>
<div id="X">Outer div</div>
使用 jquery:
$('#C').appendTo('#X');
这是: 工作演示
相关文章:
- 如何在HTML中显示服务器对象变量
- Html地图对象-点击地图获取id的一部分
- 当使用ajax并将html数据保存为对象时,收听浏览器返回按钮.好的或坏的
- 将GET请求(HTML字符串)转换为完整的DOM对象
- 确定javascript中的html表对象是否具有<colgroup>是否
- 枚举附加到文档的HTML对象的所有事件
- 从html锚元素传递窗口对象
- Don't将对象中的项附加到html中
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 重叠对象上的HTML画布事件
- 如何打开文件对象(HTML)并在谷歌应用程序脚本中解析它
- 在单击选项卡式项目时隐藏和创建另一个对象 - HTML CSS
- 对象 HTML 被输出而不是期望值
- 如何操作svg外来对象html文本包装和定位
- 如何打印对象html
- 什么是javascript中的对象html集合
- Knockout JS如何绑定可观察的对象html绑定
- 对象 HTML 我的第一个代码中的错误
- 如何在 React 中使用 JavaScript 模块对象(HTML + JS 嵌入)
- 嵌入对象HTML的高度