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. ノード名とタイプの読み取りと書き込み、 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
obj.html()/obj.html(" ;123")
ノードのテキストコンテンツの読み取りと書き込み (サブタグはサポートされていません) :上記の js
obj.text()/obj.text(" の 2 番目の点に対応します123")
読み書きノードの属性値:上記 js
obj.attr("属性名") /obj.val("属性名", "属性値")の3番目の点に相当
ノードのvalue属性値の読み書き:上記js
obj.val()/obj.val("abc")の4番目に相当
注: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:
$( "Node content") ;
$("Hello")
ノードの挿入: 共通 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 フレームワークであり、その中心的なコンセプトは、コードの作成を大幅に簡素化することです。 JS、CSS、DOM をカプセル化して、一貫性のあるシンプルな API を提供するため、より便利で高速に使用でき、対応する記述方法もより簡単になります。
関連する推奨事項:
以上がJS と JQuery の間で DOM を操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。