首頁 > web前端 > js教程 > JS和JQuery對操作DOM的方法

JS和JQuery對操作DOM的方法

小云云
發布: 2018-03-26 17:17:34
原創
1260 人瀏覽過
本文主要和大家分享JS和JQuery對操作DOM的方法,主要以程式碼的方法,希望能幫助大家。
查詢節點:

js:1.根據ID查詢;2.根據標籤名稱查詢;3.根據name查詢;4.根據層次查詢;詳情如下:

<script>
		//1.根据ID查询节点
		var ul = document.getElementById("city");
		var cd = document.getElementById("cd");
		console.log(ul);
		console.log(cd);

		//2.根据标签名查询节点
		//2.1在整个文档(document)内查询
		console.log(document.getElementsByTagName("li"));
		//2.2在某个元素节点(element)内查询
		console.log(ul.getElementsByTagName("li"));

		//3.根据name查询节点(基本都是给表单控件用的)
		console.log(document.getElementsByName("sex"));
		
		//4.根据层次查询节点
		//获取已得到的节点的父亲、孩子和兄弟
		//4.1获取父亲,返回的是单个值
		console.log(cd.parentNode);
		//4.2获取孩子,返回的是多个值
		//这种方式返回的节点是个数组,并且会把空格当做孩子放入数组中
		console.log(ul.childNodes);
		//不带空格的获取孩子的节点
		console.log(ul.getElementsByTagName("li"));
		//标准API中没有直接查询兄弟的方法,
		//必须通过查询父亲、查询孩子来实现查询兄弟,
		//下面的语句输出:上海
		console.log(cd.parentNode.getElementsByTagName("li")[1]);
	</script>
登入後複製

jQuery:直接利用jQuery選擇器,選取元素,進行操作即可;請查看另一片文章:jQuery選擇器https://blog.csdn.net/huang_yx/article/details/79686975(點擊開啟連結)

讀寫節點:

js:大致分為:1.讀寫節點名稱與型別;2.讀寫節點內容;3.讀寫節點屬性;4.讀寫表單控制項的值;詳情如下:

<script>
	//1.读取节点的名称和类型
	//获取p1
	var p1 =document.getElementById("p1");
	console.log(p1.nodeName);
	console.log(p1.nodeType);

	//2.读写节点的内容(<p>内容</p>)
	//innerHTML:支持子标签
	console.log(p1.innerHTML)
	console.log(p1.innerHTML = &#39;单标签试一试&#39;)
	console.log(p1.innerHTML)
	//innerText:不支持子标签
	var p2 = document.getElementById("p2");
	console.log(p2.innerText);
	p2.innerText = "2.<u>查询</u>节点";

	//3.读写节点的属性
	//3.1.标准的API是下面的三个
	//先取到这个节点
	var img = document.getElementById("li");
	console.log(img.getAttribute("src"));
	img.setAttribute("src", "../img/add.png");
	img.removeAttribute("src");
	//3.2.新的API(低版本浏览器不支持)
	//节点.属性名(class除外,要写成className)
	//注意点:.style和.className是标准的
	var a = document.getElementById("baidu");
	console.log(a.href);
	a.href = "undifined";
	
	//4.读写表单控件的值
	//input.value/input.value=""	
</script>
登入後複製

jQuery:

讀寫節點的HTML內容(支援子標籤):對應上面js的第2點

obj.html( )/obj.html("123")

讀寫節點的文字內容(不支援子標籤):對應上面js的第2點

obj.text()/obj.text("123")

讀寫節點的屬性值:對應上面js第3點

obj.attr("屬性名")/obj .val("屬性名","屬性值")

讀寫節點的value屬性值:對應上面js第4點

obj.val()/obj.val(" abc")

註:obj表示jQuery物件

增刪節點:js對節點的增刪只能透過父節點,jQuery則樣方便很多,有很多對應的api

#js:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>增删节点</title>
<script>
	function add(){
		//创建新节点
		//相当于在内存中创建了一个<li></li>
		var li = document.createElement("li");
		//相当于在<li>中创建了一个内容
		li.innerHTML = "天津";
		//追加新节点,可以通过父亲的孩子获取,也可以直接通过ID获取
		var ul = document.getElementById("city");
		ul.appendChild(li);
	}
	//插入到节点中间
	function insertion(){
		//创建新节点
		var li = document.createElement("li");
		li.innerHTML = "成都";
		//插入新节点,到广州之前
		var ul = document.getElementById("city");
		var gz = document.getElementById("gz");
		ul.insertBefore(li, gz)
	}
	//删除节点,必须通过父亲来删除
	function del(){
		//获取要删除的节点
		var sz = document.getElementById("sz");
		//必须通过父亲才能取删除孩子的节点
		sz.parentNode.removeChild(sz);
	}
</script>
</head>
<body>
	<p>
		<input type="button" value="增加"
			onclick="add();"/>
		<input type="button" value="插入"
			onclick="insertion()"/>
		<input type="button" value="删除"
			onclick="del()"/>
	</p>
	<ul id="city">
		<li>北京</li>
		<li>上海</li>
		<li id="gz">广州</li>
		<li id="sz">深圳</li>
	</ul>
</body>
</html>
登入後複製

jQuert:

建立節點:

#$("節點內容");

$("你好")

插入節點:常用API

parent.append(obj):作為最後一個子節點加入

parent.prepend(obj ):作為下一個兄弟節點加入進來

brother.after(obj):作為下一個兄弟節點加入進來

brother.before(obj):作為上一個兄弟節點加入進來

刪除節點:常用API

obj.remove():刪除節點

obj.remove(selector):只刪除符合selector的節點

# obj.empty():清空節點

遍歷節點:jQuery對應的一些API,方便節點操作

children()/children(selector):直接子節點

# next()/next(selector):下一個兄弟節點

prev()/prev(selector):上一個兄弟節點

siblings()/siblings(selector):所有兄弟

find(selector):找出所有滿足選擇器的後代

parent():父節點

總結:

js和jQuery對節點的操作無非都是增刪改查之類,但是jQuery是一個js的框架,它的核心理念:write less,do more;極大的簡化程式碼的書寫。它封裝了JS,CSS,DOM,提供了一致的、簡約的API,所有使用起來更加方便快捷,相應的寫法也更加簡單​​。

相關推薦:

js中DOM元素的運算方法

js之DOM事件流詳解

JavaScript之優化DOM

#

以上是JS和JQuery對操作DOM的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板