var chils= s.childNodes; //Alle untergeordneten Knoten von s abrufen
var par=s.parentNode; //Den übergeordneten Knoten von s abrufen
var ns=s.nextSbiling; //Den nächsten Geschwisterknoten von s abrufen
var ps=s. previousSbiling; //Den vorherigen Geschwisterknoten von s abrufen
var fc=s.firstChild; //Den ersten untergeordneten Knoten von s abrufen
var lc=s.lastChile; //Den letzten untergeordneten Knoten von s abrufen
JS ruft das übergeordnete und untergeordnete Element des Knotens ab
Lassen Sie uns zunächst über die JS-Erfassungsmethode sprechen, die viel schwieriger ist als die JQUERY-Methode. Die JQUERY-Methode wird später zum Vergleich verwendet.
Die JS-Methode ist viel problematischer als JQUERY, hauptsächlich weil der FF-Browser Ihre Zeilenumbrüche als DOM-Elemente behandelt
<div id="test"> <div></div> <div></div> </div>
Native JS ruft die untergeordneten Elemente unter dem Element mit ID-Test ab.
Kann verwendet werden:
var a = docuemnt.getElementById("test").getElementsByTagName_r("div");
Das ist kein Problem
Zu diesem Zeitpunkt a.length=2;
Aber wenn wir eine andere Methode verwenden
var b =document.getElementByIdx_x("test").childNodes;
Zu diesem Zeitpunkt ist b.length im IE-Browser kein Problem, es ist immer noch gleich 2, aber im FF-Browser ist es 4, da FF auch Zeilenumbrüche als Elemente behandelt.
Also, hier werden wir die Verarbeitung durchführen. Wir müssen diese Elemente durchlaufen und alle Elemente löschen, die Leerzeichen und Text sind.
function del_ff(elem){ var elem_child = elem.childNodes; for(var i=0; i<elem_child.length;i++){ if(elem_child[i].nodeName == "#text" && !/\s/.test(elem_child.nodeValue)) {elem.removeChild(elem_child) } } }
Die obige Funktion durchläuft die untergeordneten Elemente, wenn das Element einen Knotentyp enthält, bei dem es sich um Text handelt, und der Knotenwert des Texttypknotens leer ist. Löschen Sie ihn einfach.
nodeNames kann den Knotentyp eines Knotens abrufen. /s/ ist der reguläre Ausdruck nicht leerer Zeichen in JS. Vorne hinzufügen! , es bedeutet das leere Zeichen
Die Methode test() wird verwendet, um zu prüfen, ob eine Zeichenfolge mit einem bestimmten Muster übereinstimmt. Die Syntax lautet: RegExpObject.test(string)
Gibt true zurück, wenn die Zeichenfolge string Text enthält, der mit RegExpObject übereinstimmt, andernfalls wird false zurückgegeben.
nodeValue bedeutet, den Wert in diesem Knoten abzurufen.
removeChild löscht die untergeordneten Elemente des Elements.
Bevor Sie danach die Eigenschaften von Sohn, Vater und Bruder aufrufen, rufen Sie einfach die obige Funktion auf, um die Leerzeichen zu löschen
<div id="test"> <div></div> <div></div> </div> <script> function dom() { var s= document.getElementByIdx_x("test"); del_ff(s); //清理空格 var chils= s.childNodes; //得到s的全部子节点 var par=s.parentNode; //得到s的父节点 var ns=s.nextSbiling; //获得s的下一个兄弟节点 var ps=s.previousSbiling; //得到s的上一个兄弟节点 var fc=s.firstChild; //获得s的第一个子节点 var lc=s.lastChile; //获得s的最后一个子节点 } </script>
Im Folgenden wird die Methode von JQUERY zum Auffinden von übergeordneten, untergeordneten und Geschwisterknoten vorgestellt
jQuery.parent(expr) Um den übergeordneten Knoten zu finden, können Sie expr zum Filtern übergeben, z. B. $("span").parent() oder $("span").parent(".class")
jQuery.parents(expr), ähnlich wie jQuery.parents(expr), durchsucht jedoch alle Vorgängerelemente, nicht beschränkt auf übergeordnete Elemente
jQuery.children(expr) Gibt alle untergeordneten Knoten zurück und nicht alle untergeordneten Knoten
behandelt wird
Das Rückgabeergebnis enthält nicht den Inhalt der ursprünglichen Sammlung. Beispielsweise beginnt $("p"), find("span") mit dem Element
, was äquivalent zu $( „p span“ )