回答
hide()
设置匹配元素的显示为无。
detach()
删除匹配的元素,包括所有文本和子节点。
该方法存储与该元素关联的所有数据,因此可用于恢复元素的数据以及事件处理程序。
remove()
也删除匹配的元素,包括所有文本和子节点。
但是,在这种情况下,只有元素的数据可以恢复,而不是它的事件处理程序不能。
在jQuery中,有三种从DOM中删除元素的方法。这三种方法是.empty()
,.remove()
和.detach()
。所有这些方法都用于从DOM中删除元素,但它们都不相同。
.hide()
隐藏匹配元素。如果没有参数,则.hide()方法是隐藏的HTML元素的最简单的方法:
$(".box").hide();
.empty()
的.empty()方法删除所有子节点和内容从选定的元素。此方法不会删除元素本身或其属性。
注
的.empty()方法不接受任何参数以避免内存泄漏。在删除元素本身之前,jQuery从子元素中删除其他构造,如数据和事件处理程序。
例
<div class="content">
<div class="hai">Hai</div>
<div class="goodevening">good evening</div>
</div>
<script>
$("div.hai").empty();
</script>
这将导致与海文本DOM结构中删除:
<div class="content">
<div class="hai"></div>
<div class="goodevening">good evening</div>
</div>
如果我们有内部<div class="hai">
任意数量的嵌套元素,它们也会被删除。
卸下摆臂()
的卸下摆臂()方法删除所选择的元素,包括所有文本和子节点。此方法还会删除所选元素的数据和事件。
注意
使用一个.remove()当你想删除它里面的元素本身,以及一切。除此之外,与元素相关的所有绑定事件和jQuery数据都将被删除。
例
考虑下面的html:
<div class="content">
<div class="hai">Hai</div>
<div class="goodevening">good evening</div>
</div>
<script>
$("div.hai").remove();
</script>
这将导致与<div>
元素的DOM结构中删除:
<div class="content">
<div class="goodevening">good evening</div>
</div
如果我们有任何数量的嵌套<div class="hai">
里面的元素,它们也会被删除。其他jQuery构造,如数据或事件处理程序也会被删除。
.detach()
的.detach()方法删除所选择的元素,包括所有文本和子节点。但是,它保留数据和事件。此方法还会保留已删除元素的副本,以便稍后重新插入它们。当移除的元件是在稍后的时间被重新插入到DOM
注
的.detach()方法是有用的。
例
<!doctype html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>Hai!</p>Good <p>Afternoo</p>
<button>Attach/detach paragraphs</button>
<script>
$("p").click(function() {
$(this).toggleClass("off");
});
var p;
$("button").click(function() {
if (p) {
p.appendTo("body");
p = null;
} else {
p = $("p").detach();
}
});
</script>
</body>
</html>
欲了解更多信息,请访问:http://www.scriptcafe.in/2014/03/what-is-difference-between-jquery_15.html
试想一张纸上用铅笔写了一些笔记的表。
hide
- >扔衣到它empty
- >删除用橡皮擦音符detach
- >抓住纸张在你手中,并保持它在那里任何未来计划remove
- >抓住纸并将其扔到垃圾箱
纸张表示元素,并且注释表示纸张的内容(子节点)元素。
有点简化,不完全准确,但容易理解。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
var $span;
$span = $("<span>");
$span.text("Ngoc Xuan");
function addEvent() {
$span.on("click",function(){
alert("I'm Span");
});
}
function addSpan() {
$span.appendTo("body");
}
function addButton(name) {
var $btn = $("<input>");
$btn.attr({value:name,
type:'submit'});
if(name=="remove"){
$btn.on("click",function(){
$("body").find("span").remove();
})
}else if(name=="detach"){
$btn.on("click",function(){
$("body").find("span").detach();
})
}else if(name=="Add") {
$btn.on("click",function(){
addSpan();
})
}else if(name=="Event"){
$btn.on("click",function(){
addEvent();
})
}else if (name == "Hide") {
$btn.on("click",function(){
if($span.text()!= '')
$span.hide();
})
}else {
$btn.on("click",function(){
$span.show();
})
}
$btn.appendTo("body");
}
(function() {
addButton("remove");
addButton("detach");
addButton("Add");
addButton("Event");
addButton("Hide");
addButton("Show");
})();
});
</script>
</body>
</html>
- 1. jQuery的差异
- 2. jQuery的差异上
- 3. jQuery $变量差异
- 4. jquery日期差异
- 5. jQuery代码差异
- 6. jQuery函数语法差异
- 7. jQuery - 差异.remove()与.html('')
- 8. jQuery选择器差异
- 9. jquery日期差异问题
- 10. 差异prepend和prependTo。 jQuery
- 11. jQuery UI Datepicker天数差异
- 12. JQuery和PHP日期差异
- 13. event.target jquery:语法差异
- 14. jQuery - 周期略有差异
- 15. 差异
- 16. 差异
- 17. Jquery的.VAL()浏览器的差异
- 18. 差异的javascript函数定义/ jQuery的
- 19. jQuery的 - $ .functionName之间的差异$ .fn.FunctionName
- 20. 差异化的两个时间jQuery的
- 21. jQuery的$()主场迎战的document.getElementById - 差异
- 22. 差异 - 文件差异
- 23. 差异移动
- 24. 差异
- 25. 差异
- 26. 在表jQuery的亮点差异
- 27. jQuery Mobile的Datebox日期范围差异
- 28. 差异(”一流)上的$(document)jQuery中
- 29. jQuery的差异.EQ(计数),[计数]
- 30. MVC中的JQuery和ASP.NET AJAX差异
对于'detach'的一个例子,看看https://stackoverflow.com/questions/12058896/restore-multiple-detached-elements-in-jquery – Lijo