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 = '单标签试一试') 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("45a2772a6b6107b401db3c9b82c049c212354bdf357c58b8a65c66d7c19c8e4d114")
讀寫節點的文字內容(不支援子標籤):對應上面js的第2點
obj.text()/obj.text("123")
讀寫節點的屬性值:對應上面js第3點
obj.attr("屬性名")/obj .val("屬性名","屬性值")
讀寫節點的value屬性值:對應上面js第4點
obj.val()/obj.val(" abc")
註:obj表示jQuery物件
#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:
建立節點:
#$("節點內容");
$("45a2772a6b6107b401db3c9b82c049c2你好54bdf357c58b8a65c66d7c19c8e4d114")
插入節點:常用API
parent.append(obj):作為最後一個子節點加入
parent.prepend(obj ):作為下一個兄弟節點加入進來
brother.after(obj):作為下一個兄弟節點加入進來
brother.before(obj):作為上一個兄弟節點加入進來
刪除節點:常用API
obj.remove():刪除節點
obj.remove(selector):只刪除符合selector的節點
# obj.empty():清空節點
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和JQuery對操作DOM的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!