Jquery操作DOM基本知识

14 篇文章 0 订阅
1 篇文章 0 订阅

jQuery 中的 DOM 操作

1.查找节点

1.1查找元素节点

var $usernameElement = $("#username");
alert("jquery "+$usernameElement.val());

1.2查找属性节点

jQuery查找到需要的元素节点后,使用attr()方法来获取它的各种属性的值。
$usernameElement.attr("value");

1.3查找文本节点

jQuery查找到需要的元素节点后,使用text()方法来获取它的文本内容。
$usernameElement.text();

2.创建节点

2.1创建元素节点

使用 jQuery 的工厂函数 $(HTML) 。该工厂函数会根据传入的 html 标记字符串创建一个 DOM 对象, 并把这个 DOM 对象包装成一个 jQuery 对象返回。
当创建单个元素时, 需注意闭合标签。
var $option = $("<option></option>");

2.2创建文本节点

创建元素节点后,使用text()方法来设置其节点的文本内容。
$option.text("北京");
创建元素节点时,直接将其节点的文本内容插入其中。
var $option = $("<option>北京</option>");

2.3创建属性节点

创建元素节点后,使用attr()方法来设置其节点的属性。
$option.attr("value","北京");
创建元素节点时,直接将其节点的属性插入其中。
var $option = $("<option value="北京">北京</option>");

3.插入节点

3.1内部插入节点

append(content) :向每个匹配的元素的内部的结尾处追加内容
appendTo(content) :将每个匹配的元素追加到指定的元素中的内部结尾处
prepend(content):向每个匹配的元素的内部的开始处插入内容
prependTo(content) :将每个匹配的元素插入到指定的元素内部的开始处

3.2外部插入节点

after(content) :在每个匹配的元素之后插入内容
before(content):在每个匹配的元素之前插入内容
insertAfter(content):把所有匹配的元素插入到另一个、指定的元素元素集合的后面
insertBefore(content) :把所有匹配的元素插入到另一个、指定的元素元素集合的前面

4.删除节点

remove(): 从 DOM 中删除所有匹配的元素, 传入的参数用于根据 jQuery 表达式来筛选元素. 当某个节点用 remove() 方法删除后,该节点所包含的所有后代节点将被同时删除. 这个方法的返回值是一个指向已被删除的节点的引用。
empty(): 清空节点 – 清空元素中的所有后代节点(不包含属性节点)。

5.复制节点

clone(): 克隆匹配的 DOM 元素, 返回值为克隆后的副本. 但此时复制的新节点不具有任何行为.
clone(true): 复制元素的同时也复制元素中的的事件 
<span style="white-space:pre">	</span><button>保存</button>
<span style="white-space:pre">	</span><p>段落</p>

 <span style="white-space:pre">	</span>$("button").click(function(){
   <span style="white-space:pre">		</span>alert("点击按钮");
 <span style="white-space:pre">	</span>});
  
  <span style="white-space:pre">	</span>//克隆节点,不克隆事件
  <span style="white-space:pre">	</span>$("button").clone().appendTo("p");
  
 <span style="white-space:pre">	</span> //克隆节点,克隆事件
  <span style="white-space:pre">	</span>$("button").clone(true).appendTo("p");

6.替换节点

replaceWith(): 将所有匹配的元素都替换为指定的 HTML 或 DOM 元素
replaceAll(): 颠倒了的 replaceWith() 方法.
注意: 若在替换之前, 已经在元素上绑定了事件, 替换后原先绑定的事件会与原先的元素一起消失
<span style="white-space:pre">	</span>//<p>段落</p>
<span style="white-space:pre">	</span>//方式一
<span style="white-space:pre">	</span>$("p").replaceWith("<button>登陆</button>");
<span style="white-space:pre">	</span>//方式二
<span style="white-space:pre">	</span>$("<button>登陆</button>").replaceAll("p");

7.属性操作

attr(): 获取属性和设置属性。
当为该方法传递一个参数时, 即为某元素的获取指定属性。
当为该方法传递两个参数时, 即为某元素设置指定属性的值。
jQuery 中有很多方法都是一个函数实现获取和设置. 如: attr(), html(), text(), val(), height(), width(), css() 等。
removeAttr(“属性名”): 删除指定元素的指定属性

8.样式操作

获取 class 和设置 class :class 是元素的一个属性, 所以获取 class 和设置 class 都可以使用 attr() 方法来完成。
追加样式:addClass()
移除样式:removeClass() --- 从匹配的元素中删除全部或指定的 class
切换样式:toggleClass()  --- 控制样式上的重复切换.如果类名存在则删除它, 如果类名不存在则添加它。
判断是否含有某个样式:hasClass() --- 判断元素中是否含有某个 class, 如果有, 则返回 true; 否则返回 false。

9.遍历节点

取得匹配元素的所有子元素组成的集合: children(). 该方法只考虑子元素而不考虑任何后代元素.
取得匹配元素后面紧邻的同辈元素下一个元素:next();
取得匹配元素前面紧邻的同辈元素上一个元素:prev()
取得匹配元素前后所有的同辈元素: siblings()
在jQuery中还有很多遍历节点的方法,具体参看API帮助文档。

10.包裹节点

wrap()
<span style="white-space:pre">	</span><strong title="jQuery">jQuery</strong>
<span style="white-space:pre">	</span><strong title="jQuery">jQuery</strong>
<span style="white-space:pre">	</span>//jQuery代码如下:
<span style="white-space:pre">	</span>$("strong").wrap("<b></b>");
	
<span style="white-space:pre">	</span>//得到的结果如下
<span style="white-space:pre">	</span><b><strong title="jQuery">jQuery</strong></b>
<span style="white-space:pre">	</span><b><strong title="jQuery">jQuery</strong></b>

<strong><span style="white-space:pre">	</span><span style="font-size:14px;">wrapAll()</span></strong>
<span style="white-space:pre">	</span><strong title="jQuery">jQuery</strong>
<span style="white-space:pre">	</span><strong title="jQuery">jQuery</strong>
<span style="white-space:pre">	</span>//jQuery代码如下:
<span style="white-space:pre">	</span>$("strong").wrapAll("<b></b>");
	
<span style="white-space:pre">	</span>//得到的结果如下
<span style="white-space:pre">	</span><b>
<span style="white-space:pre">	</span><strong title="jQuery">jQuery</strong>
<span style="white-space:pre">	</span><strong title="jQuery">jQuery</strong>
<span style="white-space:pre">	</span></b>
<span style="white-space:pre">	</span><strong><span style="font-size:14px;">wrapInner()</span></strong>

<span style="white-space:pre">	</span><strong title="jQuery">jQuery</strong>
<span style="white-space:pre">	</span>//jQuery代码如下:
<span style="white-space:pre">	</span>$("strong"). wrapInner("<b></b>");
	
<span style="white-space:pre">	</span>//得到的结果如下
<span style="white-space:pre">	</span><strong title="jQuery"><b>jQuery</b></strong>

操作DOM例子

1.查找节点

<span style="white-space:pre">	</span><body>
		 <ul>
		 	 <li id="hn">海南</li>
			 <li id="tj" name="tianjin">天津</li>
		 </ul>
	</body>
   <span style="white-space:pre">	</span><script type="text/javascript">
			/**
			 * 1: 元素节点 //选择器
			 * 2: 属性节点
			 * 3:文本节点.
			 */
			 //属性节点的查找
			 //alert($("#tj").attr("name"));<span style="white-space:pre">	查找id为tj的属性为name的值</span>
			// alert($("#tj").text());<span style="white-space:pre">		查找id为tj的文本值,也就是那些div、area中等后面的值</span>
			//$("#tj").html("cstd");<span style="white-space:pre">		将原来的文本值,修改为设置的值</span>
			//修改属性节点:
			//$("#tj").attr("name","nanjin")
			//alert($("#tj").attr("name"));
    <span style="white-space:pre">	</span></script>
执行修改文本值之前

执行修改文本值之后$("#tj").html("cstd");


修改节点的属性值:第一个参数为节点属性,第二个参数为value值
$("#tj").attr("name","nanjin")
<img src="https://img-blog.csdn.net/20150413105759778?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hlaHVuMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
 

2.创建节点

<span style="white-space:pre">	</span><body>
		 <ul id="city">
		 	 <li id="bj" name="beijing">北京</li>
		 </ul>
	</body>
	<script type="text/javascript">
			//通过jquery dom 创建<li id="tj" name="tianjin">天津</li>		
			
			var $li=$("<li></li>"); //元素节点 创建
				$li.attr("id","tj"); //属性节点  创建
				$li.attr("name","tianjin"); //文本节点创建
				$li.text("天津");
			//往city 节点的末尾添加元素
			$("#city").append($li);
	</script>
创建节点前
创建节点后

3.内部插入节点

<span style="white-space:pre">	</span><body>
		 <ul id="city">
		 	 <li id="bj" name="beijing">北京
			 </li>
			 <li id="cq" name="chongqing">
			 	重庆
			 </li>
		 </ul>
		  <ul id="love">
		 	 <li id="fk" name="fankong">
				反恐
				</li>
			 <li id="xj" name="xingji">
				星际
			 </li>
		 </ul>
		<div id="foo1">
			Hello1
		</div> 
	</body>
	<script type="text/javascript">	
			/**
			 * 四种添加方式:向每个匹配的元素的内部的结尾处追加内容
			 */
			var $li=$("<li id='zhumadian'>驻马店</li>")
			//append  向每个匹配的元素的内部的结尾处追加内容
	//		$("#xj").append($li);
	
			//appendTo 将每个匹配的元素追加到指定的元素中的内部结尾处
	//		 $("#xj").appendTo($("#cq"))
	
	
			//向每个匹配的元素的内部的开始处插入内容 prepend
	//			$("#foo1").prepend($li);
			//将每个匹配的元素插入到指定的元素内部的开始处
	//		$("#foo1").prependTo($("#xj"));
	</script>

append  向每个匹配的元素的内部的结尾处追加内容
追加前

追加后

appendTo 将每个匹配的元素追加到指定的元素中的内部结尾处
追加前

追加后

向每个匹配的元素的内部的开始处插入内容 prepend
插入前

插入后

将每个匹配的元素插入到指定的元素内部的开始处prependTo
插入前

插入后

4.外部插入节点

<span style="white-space:pre">	</span><body>
		 <ul id="city">
		 	 <li id="bj" name="beijing">北京</li>
			 <li id="tj" name="tianjin">天津</li>
			 <li id="cq" name="chongqing">重庆</li>
		 </ul>
		 <p  id="p3">
			I would like to say: p3
		 </p>
		 <p  id="p2">I would like to say: p2</p>
		 <p  id="p1">I would like to say: p1</p>
	</body>
	<script type="text/javascript">
			//外部插入节点
			//after(content) :在每个匹配的元素之后插入内容
			   var  $div=$("<div>屌丝</div>")
		    $("#p2").after($div);
			//before(content):在每个匹配的元素之前插入内容\
			 //var  $div=$("<div>屌丝</div>")
		     //$("#p2").before($div);
			//insertAfter(content):把所有匹配的元素插入到另一个指定的元素元素集合的后面
			
			// $("p").insertAfter($("#tj"));
			
			//insertBefore(content) :把所有匹配的元素插入到另一个、指定的元素元素集合的前面
			// $("p").insertBefore($("#tj"));
	</script>

after(content) :在每个匹配的元素之后插入内容
插入前

插入后

before(content):在每个匹配的元素之前插入内容

insertAfter(content):把所有匹配的元素插入到另一个指定的元素元素集合的后面

insertBefore(content) :把所有匹配的元素插入到另一个、指定的元素元素集合的前面

5.删除节点

<span style="white-space:pre">	</span><body>
		 <ul id="city">
		 	 <li id="bj" name="beijing">北京<p>海淀区</p></li>
			 <li id="tj" name="tianjin">天津<p>河西区</p></li>
			 <li id="cq" name="chongqing">重庆</li>
		 </ul>
		<p class="hello">Hello</p> how are <p>you?</p> 
	</body>
	<script type="text/javascript">
				
				//删除节点..
				//$("#cq").remove();
				
				//清空节点..
			//	$("#city").empty();
	</script>

删除节点remove()
删除前

删除后

清空节点



6.复制节点

<span style="white-space:pre">	</span><body>
		<button>保存</button><br>	
	    <p>段落</p>
	</body>
    <span style="white-space:pre">	</span><script type="text/javascript">
		//button增加事件
		/* $("button").click(function(){
			 var $clonep=$("p").clone();
			 $("body").append($clonep);
		}); */
		
		//利用元素选择器进行选择
		$("button").bind("click",function(){
			 var clonep=$("p").clone();
			 $("body").append(clonep);
		});
    <span style="white-space:pre">	</span></script>
复制节点前

复制节点后

7.替换节点

<span style="white-space:pre">	</span><html>
	    <p>段落</p>
		<p>段落</p>
		<p>段落</p>
		<button>保存</button>
	</html>
	<script type="text/javascript">
			// 将所有匹配的元素都替换成指定的 HTML 或 DOM 元素
			var $p=$("<div>itcast</div>")
			//$("button").replaceWith($p);
			//把button 替换 获取到p 元素
			$("button").replaceAll($("p"))
	</script>
把button 替换 获取到p 元素
替换前
替换后

将所有匹配的元素都替换成指定的 HTML 或 DOM 元素


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值