如何删除() HTML 元素然后添加() 它?
基本上我需要做的是“移动”一个 HTML 元素,不是按位置移动,而是按 DOM 结构的位置移动。
例如,
<table id="main">
<tr id="row1"><td></td></tr>
<tr id="row2"><td></td></tr>
<tr id="row3"><td></td></tr>
</table>
如何将“tr#row3”移动到“table#main”的顶部? 可以使用jQuery。
Basically what I need to do is to "move" an HTML element, not position-wise but location of it's DOM structure.
Eg
<table id="main">
<tr id="row1"><td></td></tr>
<tr id="row2"><td></td></tr>
<tr id="row3"><td></td></tr>
</table>
How do I move "tr#row3" to the top of "table#main"?
Can use jQuery.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
简单的js方式是:
The plain js way is:
另一种方式:
或者你也可以这样做:
因为 ID 应该是唯一的。
请注意,虽然您没有指定
tbody
元素,但浏览器总是会插入一个元素。这就是为什么您不能只将行添加到table
元素的前面。更新:正确地说,事实上你可以,正如 @Šime Vidas 指出的那样。
参考:
前置
Another way:
or you could also do:
as IDs are supposed to be unique.
Note that although you don't specify a
tbody
element, the browser will always insert one. That's why you cannot just prepend the row to thetable
element.Update: To be correct, in fact you can, as @Šime Vidas pointed out.
Reference:
prepend
一般来说,如果您想要添加一个元素,同时保留其所有数据,您应该使用 jQuery
.detach()
方法 [文档]。一旦将元素从当前位置分离,就可以将其插入到新位置。但是在这种情况下
.prepend()
和.append()
实际上会默认执行您想要的操作,因此.detach()
不是没有必要。来自文档:In general if you want to more an element, while preserving all of its data, you should use the jQuery
.detach()
method [docs]. Once you detach the element from its current location it can be inserted into the new one.However in this case
.prepend()
and.append()
will actually do what you want by default, so.detach()
isn't necessary. From the docs:jQuery 前置
jQuery prepend
可能是最简单的方法
is probably the easiest way
像这样 ? :
小提琴 : http://jsfiddle.net/Z3VrV/1/
或者这个 :
小提琴 : http://jsfiddle.net/Z3VrV/2/
Like this ? :
Fiddle : http://jsfiddle.net/Z3VrV/1/
Or this :
Fiddle : http://jsfiddle.net/Z3VrV/2/