js: 1. ID 기반 쿼리, 2. 태그 이름 기반 쿼리, 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. 노드 내용을 읽고 씁니다. 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
obj.html()/obj.html("<의 2번 항목에 해당) ;span>123")
노드의 텍스트 내용을 읽고 씁니다(하위 태그는 지원되지 않음) : 위 js
obj.text()/obj.text의 두 번째 지점에 해당합니다. ("123")
읽기-쓰기 노드의 속성 값: 위 js
obj.attr("속성 이름") /obj.val("속성 이름", "속성 값의 세 번째 지점에 해당) ")
노드의 value 속성 값을 읽고 씁니다. 위 js
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:
Create node:
$( "노드 내용 ");
$("Hello")
삽입 노드: 공통 API
parent.append(obj): 마지막 하위 노드로 추가됨
parent .prepend(obj): 첫 번째 자식 노드로 추가
brother.after(obj): 다음 형제 노드로 추가
brother.before(obj): 이전 형제 노드로 추가
Delete 노드: 자주 사용되는 API
obj.remove( ): 노드 삭제
obj.remove(selector): 선택기를 만족하는 노드만 삭제
obj.empty(): 노드 지우기
children()/ children(selector): 직계 자식 노드
next()/next(selector): 다음 형제 노드
prev()/prev(selector): 이전 형제 노드
siblings( )/siblings(selector): 모든 형제
find(selector): 선택기를 만족하는 모든 자손을 찾습니다.
parent(): 부모 노드
JS와 jQuery의 노드 작업은 추가, 삭제, 수정, 확인에 불과하지만 jQuery는 js 프레임워크이며 핵심 개념은 다음과 같습니다. 적게 작성하고 더 많이 수행하여 코드 작성을 크게 단순화합니다. JS, CSS, DOM을 캡슐화하여 일관되고 간단한 API를 제공하므로 사용이 더 편리하고 빠르며 해당 작성 방법도 더 간단합니다.
관련 권장사항:
위 내용은 JS와 JQuery 사이에서 DOM을 조작하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!