Heim > Web-Frontend > js-Tutorial > Ausführliche JavaScript-DOM-Anwendung

Ausführliche JavaScript-DOM-Anwendung

php中世界最好的语言
Freigeben: 2018-03-13 13:29:34
Original
1416 Leute haben es durchsucht

Dieses Mal werde ich Ihnen ausführliche JavaScript-DOM-Anwendungen vorstellen. Was sind die Vorsichtsmaßnahmen für die Verwendung von JavaScriptDOM-Anwendungen?

Was ist DOM:
Dokument, Knoten! In CSS heißt es Label, in JS heißt es Element und in DOM heißt es a Knoten; Browser-Unterstützung

IE:10 % Chrome:60 % FF:99 % Unterstützung


DOM-Knoten

childNodes: untergeordnete Knoten

nodeType: Knotentyp

nodeType = = 3 -> Textknoten

nodeType == 1 -> Elementknoten

childNodes und nodeType werden zusammen verwendet

, um den untergeordneten Knoten zu erhalten
<head>    <meta charset="UTF-8">
    <title>01-DOM基础</title>
    <script>
        window.onload = function () {            //        ul的子节点为li
            var oUl = document.getElementById(&#39;ul1&#39;);            for(var i=0;i<oUl.childNodes.length;i++){                //由于在不同的浏览器下,获取到的oUl.childNodes是不一样的;IE6-8会将文本节点也算进去;
                //故若想给元素节点修改样式,可以通过 oUl.childNodes[i].nodeType == 1 来获取元素节点,并修改样式;
                //nodeType==3   ->  文本节点
                //nodeType==1   ->  元素节点
                //给所有的li设置背景颜色
                if(oUl.childNodes[i].nodeType == 1){
                    oUl.childNodes[i].style.background = &#39;red&#39;;
                }
            }
        }    </script></head><body><ul id="ul1">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li></ul>abcdefg //文本节点<span>abcdefg</span> //元素节点</body></html>
Nach dem Login kopieren
children: Es enthält nur Elemente, keinen Text und ist mit allen Browsern kompatibel

Das obige Beispiel kann also so geschrieben werden, einfach und grob!!!

parentNode: Übergeordneter Knoten
for (var i=0;i<oUl.children.length;i++){
     oUl.children[i].style.background = &#39;red&#39;;
}
Nach dem Login kopieren
Beispiel: Klicken Sie auf den Link, blenden Sie das gesamte Li aus

parentNode-Beispiel:

offsetParent
<html lang="en"><head>
    <meta charset="UTF-8">
    <title>02-parentNode</title>
    <script>
        window.onload = function () {            var aA = document.getElementsByTagName(&#39;a&#39;);            for(var i=0;i<aA.length;i++){
                aA[i].onclick = function () {                    this.parentNode.style.display = &#39;none&#39;;
                }
            }
        }    </script></head><body><ul>
    <li>11111<a href="javaScript:;">隐藏</a></li>
    <li>22222<a href="javaScript:;">隐藏</a></li>
    <li>33333<a href="javaScript:;">隐藏</a></li>
    <li>44444<a href="javaScript:;">隐藏</a></li></ul></body></html>
Nach dem Login kopieren
Beispiel: Ermitteln Sie die tatsächliche Position des Elements auf der Seite

Wird hauptsächlich verwendet für Positionierung, erhalten Sie den tatsächlichen übergeordneten Knoten des Elements.

Beispiel 1: Setzen Sie

absolute Positionierung

auf das zweite div2 und setzen Sie nichts auf den übergeordneten Knoten div1 von div2 und dann auf den offsetParent von div2 ist Körper.

Beispiel 2: Legen Sie die absolute Positionierung für das zweite div2 fest und legen Sie die relative Positionierung für den übergeordneten Knoten von div2, div1, fest. Dann ist der offsetParent von div2 div1.
<html lang="en"> <head>     <meta charset="UTF-8">     <title>offsetParent</title>     <style>         #div1{width: 200px;height: 200px;background: #ccc;margin-left: 100px;}         #div2{width: 100px;height: 100px;background: red;position: absolute;left: 10px;}     </style>     <script>         window.onload = function () {             oDiv2 = document.getElementById(&#39;div2&#39;);             alert(oDiv2.offsetParent); //结果:[object HTMLBodyElement] 父节点为body;         }     </script> </head> <body> <div id="div1">     <div id="div2"></div> </div> </body> </html>
Nach dem Login kopieren

2.DOM-Knoten (2)
<html lang="en"> <head>     <meta charset="UTF-8">     <title>offsetParent</title>     <style>         #div1{width: 200px;height: 200px;background: #ccc;margin-left: 100px;             position: relative;}         #div2{width: 100px;height: 100px;background: red;position: absolute;left: 10px;}     </style>     <script>         window.onload = function () {             oDiv2 = document.getElementById(&#39;div2&#39;);             alert(oDiv2.offsetParent); //结果:[object HTMLDivElement] 父节点为div;         }     </script> </head> <body> <div id="div1">     <div id="div2"></div> </div> </body> </html>
Nach dem Login kopieren

Untergeordnete Kopf- und Schwanzknoten

haben Kompatibilitätsprobleme

firstChild、firstElementChild
lastChild 、lastElementChild
   //IE6-8    //oUl.firstChild.style.background=&#39;red&#39;;    //高级浏览器    //oUl.firstElementChild.style.background=&#39;red&#39;;
Nach dem Login kopieren
Verwendungsbeispiele

Geschwisterknoten (dasselbe wie oben verwenden)
<html><head><meta charset="utf-8"><title>无标题文档</title><script>window.onload=function (){    var oUl=document.getElementById(&#39;ul1&#39;);    //IE6-8
    //oUl.firstChild.style.background=&#39;red&#39;;
    //高级浏览器
    //oUl.firstElementChild.style.background=&#39;red&#39;;
    //给第一个li设置红色背景:由于兼容问题,故需判断下
    if(oUl.firstElementChild)
    {
        oUl.firstElementChild.style.background=&#39;red&#39;;
    }    else
    {
        oUl.firstChild.style.background=&#39;red&#39;;
    }
};</script></head><body><ul id="ul1">
    <li>1</li>
    <li>2</li>
    <li>3</li></ul></body></html>
Nach dem Login kopieren

Es gibt Kompatibilitätsprobleme

nextSibling, nextElementSibling

previousSibling, previousElementSibling

3. Element bearbeiten Attribute

Element

Attributmanipulation

Erste Methode: oDiv.style.display='block';Zweite Methode: oDiv.style['display']='block' ;
Dritte Methode: Dom-Methode: oDiv2.setAttribute ('display','none');

Elementattribute im DOM-Modus bearbeiten

Get: getAttribute(name)

Setzen: setAttribute (Name, Wert)
Löschen: removeAttribute(name)

Verwenden Sie className, um Elemente auszuwählen

So verwenden Sie className, um Elemente auszuwählen

Wählen Sie alle Elemente aus

Nach Klassennamenbedingungen filtern

Grundlegende Verwendung


Eingekapselt in Funktionen
<html><head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    <script>
        window.onload=function ()        {            var oUl=document.getElementById(&#39;ul1&#39;);            var aLi=oUl.getElementsByTagName(&#39;li&#39;);            for(var i=0;i<aLi.length;i++)
            {                if(aLi[i].className==&#39;box&#39;)
                {
                    aLi[i].style.background=&#39;red&#39;;
                }
            }
        };    </script></head><body><ul id="ul1">
    <li class="box"></li>
    <li class="box"></li>
    <li></li>
    <li></li>
    <li></li>
    <li class="box"></li>
    <li></li></ul></body></html>
Nach dem Login kopieren
Erweiterte Verwendung


5. Elemente erstellen, einfügen und löschen
   <script>
         //封装成函数
        function getByClass(oParent, sClass)        {            var aResult=[];            var aEle=oParent.getElementsByTagName(&#39;*&#39;);//*通配符,获取oParent下面所有的节点
            for(var i=0;i<aEle.length;i++)
            {                if(aEle[i].className==sClass)
                {
                    aResult.push(aEle[i]);
                }
            }            return aResult;
        }        window.onload=function ()        {            var oUl=document.getElementById(&#39;ul1&#39;);            var aBox=getByClass(oUl, &#39;box&#39;);            for(var i=0;i<aBox.length;i++)
            {
                aBox[i].style.background=&#39;red&#39;;
            }
        };    </script>
    <body>
       <ul id="ul1">
          <li class="box"></li>
          <li class="box"></li>
          <li></li>
          <li></li>
          <li></li>
         <li class="box"></li>
         <li></li>
       </ul></body>
Nach dem Login kopieren

DOM-Element erstellen

createElement (Tag-Name) Einen Knoten erstellen appendChild (node) hängt einen Knoten an


Hinweis: appendChild (node) hat zwei Funktionen:

(1) Wenn dieses Element über createElement (Tag-Name) erstellt wird, kann es direkt zum neuen übergeordneten Element hinzugefügt werden. (2) Löschen Sie zuerst das Element vom ursprünglichen übergeordneten Element . Fügen Sie es dann dem neuen übergeordneten Element hinzu.

Beispiel: Fügen Sie li in ul ein. Bitte beachten Sie andere verwandte Artikel auf der chinesischen PHP-Website!

Empfohlene Lektüre:

<html><head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    <script>
        window.onload=function ()        {            var oBtn=document.getElementById(&#39;btn1&#39;);            var oUl=document.getElementById(&#39;ul1&#39;);            var oTxt=document.getElementById(&#39;txt1&#39;);
            oBtn.onclick=function ()            {                //创建节点
                var oLi=document.createElement(&#39;li&#39;);
                oLi.innerHTML=oTxt.value;                //添加节点 父级.appendChild(子节点);
                oUl.appendChild(oLi);
            };
        };    </script></head><body><input id="txt1" type="text"/><input id="btn1" type="button" value="创建li"/><ul id="ul1"></ul></body></html>
Nach dem Login kopieren
Ausführliche Grundanwendung von JavaScript

8 Grundkenntnisse von JS, die beachtet werden müssen zu

Das obige ist der detaillierte Inhalt vonAusführliche JavaScript-DOM-Anwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage