Maison  >  Article  >  interface Web  >  Une explication détaillée de la navigation dans les nœuds DOM en JavaScript

Une explication détaillée de la navigation dans les nœuds DOM en JavaScript

藏色散人
藏色散人avant
2022-08-06 16:49:561636parcourir

Cet article explique principalement comment utiliser les nœuds DOM pour obtenir des éléments de page. Tout dans le document de page est un nœud : y compris les nœuds d'éléments, les nœuds de texte, les nœuds d'attribut, les nœuds de document et les nœuds de commentaires. Ce qui suit décrit deux méthodes principales pour obtenir des nœuds :

(1) Obtenir des nœuds (y compris tous les nœuds tels que les nœuds de texte, les nœuds d'éléments, etc.)

1.parentNode : Obtenez le nœud parent

2. childNodes : récupère les nœuds enfants, récupère chaque nœud enfant via la valeur d'index

3.firstChild : récupère le premier nœud enfant du nœud parent

4.lastChild : récupère le dernier nœud enfant du nœud parent

5.nextSibling : Obtenez le nœud enfant adjacent suivant Un nœud frère

6.previousSibling : Obtenez le nœud frère précédent adjacent au nœud enfant

7.attributes : Obtenez le nœud d'attribut

<!DOCTYPE html>
<html>
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>由节点关系获取元素</title>
    <style>
 
    </style>
</head>
 
<body>
    <div name="div1">
        <p name=&#39;p1&#39;>文本节点</p>
        <p>2</p>
        <ul>
            <li>3</li>
            <li id="li4">4</li>
            <li>5</li>
            <li>6</li>
        </ul>
    </div>
    <section>7</section>
    <main><span>8</span><i>9</i></main>
    <script>
        //注意换行和空格也属于结点,属于文本节点,按节点关系访问时需要考虑。属性节点无须考虑。
        //1. parentNode获取div
        console.log(document.querySelector(&#39;p&#39;).parentNode);
        console.log(document.querySelector(&#39;p&#39;).parentNode.attributes[0]);
        console.log(document.querySelector(&#39;p&#39;).parentNode.nodeName); //DIV
        console.log(document.querySelector(&#39;p&#39;).parentNode.nodeValue); //null
        console.log(document.querySelector(&#39;p&#39;).parentNode.nodeType); //1 元素节点
        // 2.通过childNodes获取第一个p
        console.log(document.querySelector(&#39;div&#39;).childNodes[1]);
        console.log(document.querySelector(&#39;div&#39;).childNodes[1].firstChild.nodeName);
        console.log(document.querySelector(&#39;div&#39;).childNodes[1].firstChild.nodeType); //2 文本节点
        console.log(document.querySelector(&#39;div&#39;).childNodes[1].firstChild.nodeValue);
        // 3.firstChild获取main中的第一个子节点
        console.log(document.querySelector(&#39;main&#39;).firstChild);
        // 4.lastChild获取main中的最后一个子节点
        console.log(document.querySelector(&#39;main&#39;).lastChild);
        // 5.nextSibling获取相邻下一个兄弟元素
        console.log(document.querySelector(&#39;#li4&#39;).nextSibling.nextSibling);
        // 6.previousSibling获取相邻上一个兄弟元素
        console.log(document.querySelector(&#39;#li4&#39;).previousSibling.previousSibling);
        // 总结:除parentNode外,其他方法谨慎选择,一旦代码格式有变,就会出现错误
        // 通过nodeName获取节点名称
        //通过nodeValue获取节点值
        // 通过nodeType返回节点类型
    </script>
</body>
 
</html>

(2) Obtenez le nœud d'élément

1.parentElement : obtenez le nœud de l'élément parent

2.children : obtenez le nœud de l'élément enfant, obtenez chaque nœud d'élément enfant via la valeur d'index

3.firstElementChild : obtenez le premier nœud d'élément enfant du parent

4.lastElementChild : Obtenez le dernier nœud d'élément enfant du parent

5.nextElementSibling : Obtenez le nœud d'élément frère suivant adjacent

6.previousElementSibling : Obtenez le nœud d'élément frère précédent adjacent

<!DOCTYPE html>
<html>
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>获取子元素节点</title>
</head>
 
<body>
    <div>
        <p>123</p>
        <p>456</p>
        <p>789</p>
    </div>
    <script>
        //p标签总体算一个节点,内部的“123”不算
        console.log(document.querySelector(&#39;div&#39;).childNodes);
        console.log(document.querySelector(&#39;div&#39;).childNodes.length);
        // 获取子元素节点
        console.log(document.querySelector(&#39;div&#39;).children);
        console.log(document.querySelector(&#39;div&#39;).children[1]);
        console.log(document.querySelector(&#39;div&#39;).firstElementChild);
        console.log(document.querySelector(&#39;div&#39;).firstElementChild.nextElementSibling);
        console.log(document.querySelector(&#39;div&#39;).lastElementChild);
        console.log(document.querySelector(&#39;div&#39;).lastElementChild.previousElementSibling);
        console.log(document.querySelector(&#39;div&#39;).children[1].parentElement);
    </script>
</body>
 
</html>

Recommandations associées : [Tutoriel vidéo JavaScript]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer