DOM创建节点及节点属性

一、创建新的节点并添加到dom中

dom 节点创建的过程(创建节点<元素、属性、文本等>、添加节点的属性、加入到文档中)

jQuery创建元素节点的方法:

创建元素节点:

$("<div></div>");

创建文本节点:

$("<div>直接将文本的内容添加进去</div>");

创建节点并给节点添加属性:
var div = $("<div class='right'><div class='aaron'>动态创建DIV元素节点</div></div>")

此时节点创建完成。需要将节点添加到文档中,添加新内容的四个 jQuery 方法:

  • append() - 在被选元素的结尾插入内容
  • prepend() - 在被选元素的开头插入内容
<!DOCTYPE html>
<html> <head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
<style>
.xin{
margin-top:15px;
width:300px;
height:100px;
color:#fff;
background:#f00;
}
</style>
</head> <body>
<h3>创建节点</h3>
<button class="jie">点击我创建节点</button>
<script type="text/javascript">
$('.jie').on('click',function(){
$("h3").("<div class='xin'>我是新创建的节点</div>");
});
</script>
</body> </html>
  • after() - 在被选元素之后插入内容
  • before() - 在被选元素之前插入内容
<script type="text/javascript">
$("#bt1").on('click', function() {
//在匹配test1元素集合中的每个元素前面插入p元素
$(".test1").before('<p style="color:red">before,在匹配元素之前增加</p>', '<p style="color:red">多参数</p>')
})
</script>
<script type="text/javascript">
$("#bt2").on('click', function() {
//在匹配test1元素集合中的每个元素后面插入p元素
$(".test2").after('<p style="color:blue">after,在匹配元素之后增加</p>', '<p style="color:blue">多参数</p>') })
</script>

二、DOM内部插入append()与appendTo()

.append()和.appendTo()两种方法功能相同,主要的不同是语法——内容和目标的位置不同

<body>
<h2>通过append与appendTo添加元素</h2>
<button id="bt1">点击通过jQuery的append添加元素</button>
<button id="bt2">点击通过jQuery的appendTo添加元素</button> <div class="content"></div> <script type="text/javascript"> $("#bt1").on('click', function() {
//.append(), 内容在方法的后面,
//参数是将要插入的内容。
$(".content").append('<div class="append">通过append方法添加的元素</div>')
}) </script> <script type="text/javascript"> $("#bt2").on('click', function() {
//.appendTo()刚好相反,内容在方法前面,
//无论是一个选择器表达式 或创建作为标记上的标记
//它都将被插入到目标容器的末尾。
$('<div class="appendTo">通过appendTo方法添加的元素</div>').appendTo($(".content"))
}) </script> </body>

三、DOM内部插入prepend()与prependTo()

在指定元素之前插入新的节点:

 <script type="text/javascript">
$("#bt1").on('click', function() {
//找到class="aaron1"的div节点
//然后通过prepend在内部的首位置添加一个新的p节点
$('.aaron1')
.prepend('<p>prepend增加的p元素</p>')
})
</script>
<script type="text/javascript">
$("#bt2").on('click', function() {
//找到class="aaron2"的div节点
//然后通过prependTo内部的首位置添加一个新的p节点
$('<p>prependTo增加的p元素</p>')
.prependTo($('.aaron2'))
})
</script>

四、DOM外部插入insertAfter()与insertBefore()

注意:insertAfter()和insertBefore()都不支持多参数,当有参数时只有第一个参数被执行

<body>
<h2>通过insertBefore与insertAfter添加元素</h2>
<button id="bt1">点击通过jQuery的insertBefore添加元素</button>
<button id="bt2">点击通过jQuery的insertAfter添加元素</button>
<div class="aaron">
<p class="test1">测试insertBefore,不支持多参数</p>
</div>
<div class="aaron">
<p class="test2">测试insertAfter,不支持多参数</p>
</div>
<script type="text/javascript">
$("#bt1").on('click', function() {
//在test1元素前后插入集合中每个匹配的元素
//不支持多参数
$('<p style="color:red">测试insertBefore方法增加</p>', '<p style="color:red">多参数</p>').insertBefore($(".test1"))
})
</script>
<script type="text/javascript">
$("#bt2").on('click', function() {
//在test2元素前后插入集合中每个匹配的元素
//不支持多参数
$('<p style="color:red">测试insertAfter方法增加</p>', '<p style="color:red">多参数</p>').insertAfter($(".test2"))
})
</script>
</body>

四、在DOM中清空节点的内容

.empty()--将选定节点的内容清空

<!DOCTYPE html>
<html> <head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script> <style>
div {
background: #ff0;
width: 300px;
}
</style>
</head> <body>
<h2>通过empty移除元素</h2>
<div id="soulsjie">
<div>这是div的内容</div>
</div>
<button>点击通过jQuery的empty移除元素</button>
<script type="text/javascript">
$("button").on('click', function() {
//通过empty移除了当前div元素下的所有p元素
$("#soulsjie").empty()
})
</script>
</body>
<!--注意:.empty()只是将元素内容清除,被选择的div仍然存在,只是没内容而已-->
</html>

五、remove()---DOM节点删除

<!DOCTYPE html>
<html> <head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
<style>
.test1 {
background: #bbffaa;
} .test2 {
background: yellow;
}
</style>
</head> <body>
<h2>remove移除节点</h2>
<h3>remove无参数方法</h3>
<button>无参数,删除整个选定的div</button>
<h3>remove有参数方法</h3>
<button>有参数,可以删除指定div内符合条件的元素</button>
<div class="test1">
<p>测试内容1</p>
<p>测试内容2</p>
</div>
<div class="test2">
<p>测试内容3</p>
<p>测试内容4</p>
</div>
<script type="text/javascript">
$("button:first").on('click', function() {
//删除整个 class=test1的div节点
$(".test1").remove()
}) $("button:last").on('click', function() {
//找到所有p元素中,包含了3的元素
//这个也是一个过滤器的处理
$("p").remove(":contains('4')")
})
</script>
</body> </html>

.empty()和.remove()区别:

.empty()并不是直接删除DOM节点,只是找到该节点并将该节点的内容清空,而.remove()是直接将DOM节点删除。

六、detach()移除的元素可以通过append()追加到文档,并且该元素的事件和属性不会改变

<html>

<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
<style type="text/css">
p {
color:blue;
cursor:pointer;
}
</style>
</head> <body>
<p>绑定点击事件的文本1</p>
<p>绑定点击事件的文本2</p>
<h5>被append()恢复的元素会保留被删除之前的属性和事件</h5>
<button id="bt1">detach()会将元素移除</button>
<button id="bt2">append()可以将被detach()移除的元素重新添加到dom</button>
<script type="text/javascript">
$('p').click(function() {
alert('元素的事件')
})
var p;
$("#bt1").click(function() {
if (!$("p").length) return; //去重
//通过detach方法删除元素
//只是页面不可见,但是这个节点还是保存在内存中
//数据与事件都不会丢失
p = $("p").detach()
}); $("#bt2").click(function() {
//把p元素在添加到页面中
//事件还是存在
$("h5").append(p);
});
</script>
</body> </html>

jQuery_DOM学习之------创建节点及节点属性的更多相关文章

  1. C#操作XML学习之创建XML文件的同时新建根节点和子节点(多级子节点)

    最近工作中遇到一个问题,要求创建一个XML文件,在创建的时候要初始化该XML文档,同时该文档打开后是XML形式,但是后缀名不是.在网上找了好些资料没找到,只能自己试着弄了一下,没想到成功了,把它记下来 ...

  2. JS学习之DOM节点的关系属性封装、克隆节点、Dom中Style常用的一些属性等小结

    JS DOM节点: 在JS DOM中节点的关系被定义为节点的属性: 通常有以下几种节点之间的关系: (这里的关系是所有浏览器都支持的) parentNode    父节点 childNodes     ...

  3. JavaScript&&jQuery创建新节点和操作属性对比

    JavaScript创建新节点和操作属性 通过JavaScript原生接口创建节点,在处理上是非常复杂与繁琐的. <!DOCTYPE html> <html lang="e ...

  4. 通过jquery创建节点以及节点属性处理

    <!DOCTYPE html><html> <head>    <meta http-equiv="Content-type" conte ...

  5. JavaScript 节点操作Dom属性和方法(转)

    JavaScript 节点操作Dom属性和方法   一些常用的dom属性和方法,列出来作为手册用. 属性:   1.Attributes 存储节点的属性列表(只读)   2.childNodes 存储 ...

  6. jacascript DOM节点——元素节点、属性节点、文本节点

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! DOM节点的三个种类:元素节点.文本节点.属性节点: 元素节点 元素节点就是 HTML 标签元素,元素节点 ...

  7. DOM操作 ——如何添加、移除、移动、复制、创建和查找节点等。

    DOM操作 --如何添加.移除.移动.复制.创建和查找节点等. (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个 ...

  8. 创建和删除节点:——核心DOM

    1. 创建单个元素节点:3步:       1. 创建空元素节点对象:          var elem=document.createElement("标签名");      ...

  9. .net学习笔记----WebConfig常用配置节点介绍

    一.配置文件入门 .Net提供了一种保存项目配置信息的办法,就是利用配置文件,配置文件的后缀一般是.config.在WinForm程序中配置文件一般是App.config.在Asp.net中一般默认是 ...

随机推荐

  1. [转]Using the Repository Pattern with ASP.NET MVC and Entity Framework

    本文转自:http://www.codeguru.com/csharp/.net/net_asp/mvc/using-the-repository-pattern-with-asp.net-mvc-a ...

  2. HashMap和List遍历方法总结及如何遍历删除元素

    https://blog.csdn.net/demohui/article/details/77748809

  3. Glide清除缓存

    Glide是谷歌推荐的一款加载图片的第三方框架,对内存优化更好,更省资源,他的众多好处,我就不一一描述了,有兴趣的朋友可以百度一下,介绍的还是挺详细的. 今天主要给大家介绍一下关于怎么获取Glide的 ...

  4. Android 更新方案实现

    需求说明 为了保证自己 APP 的新版本使用率,现在有很多已有的“软件更新”框架供各位使用,本文的主要内容是如何自己动手来实现软件的后台下载,更新. 下面详细说明下软件更新的逻辑,流程图如下: 每步详 ...

  5. xmind8 Mac破解版(思维导图) 附序列号

    链接: https://pan.baidu.com/s/1PNdLRGpz_jhfPmWAIbLRfw 提取码: ruvm 复制这段内容后打开百度网盘手机App,操作更方便哦 小伙伴们XMind 8 ...

  6. dede自定义表单放首页出错的解决办法

    一.当自定义表单放首页提交的时候跳出这个页面怎么解决 二.解决办法 可能有多个from表单提交出错,也就是代码冲突的意思,只要把代码检查好,from提交不要重复冲突就可以了

  7. iOS Programming Touch Events and UIResponder

    iOS Programming Touch Events and UIResponder  1 Touch Events  As a subclass of UIResponder, a UIView ...

  8. Compiler 1.6.5 —1.6.7

    Compiler  1.6.5 —1.6.7 Dynamic Scope Technically, any scoping policy is dynamic if it is based on fa ...

  9. git push失败the remote end hung up unexpectedly

    Git Push是老是失败,提示: fatal: the remote end hung up unexpectedly git did not exit cleanly (exit code 1) ...

  10. Windows live writer 2012 测试

    升级到win10,居然Windows live writer不能用了,装了好久就是装不上去,wlsetup-web.exe 在线安装失败,wlsetup-all.exe离线安装也失败了. 安装Blog ...