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>
jQuery_DOM学习之------创建节点及节点属性
原文地址:http://www.cnblogs.com/soulsjie/p/7794211.html