Maison >interface Web >js tutoriel >js jquery obtient le niveau frère de l'élément actuel précédent suivant element_jquery
var chils= s.childNodes; //Obtenir tous les nœuds enfants de s
var par=s.parentNode; //Obtenir le nœud parent de s
var ns=s.nextSbiling; //Obtenir le prochain nœud frère de s
var ps=s.previousSbiling; //Obtenir le nœud frère précédent de s
var fc=s.firstChild; //Obtenir le premier nœud enfant de s
var lc=s.lastChile; //Obtenir le dernier nœud enfant de s
JS obtient le nœud parent, l'élément enfant
Parlons d'abord de la méthode d'acquisition JS, qui est bien plus gênante que la méthode JQUERY. La méthode JQUERY sera utilisée à des fins de comparaison plus tard.
La méthode JS est beaucoup plus gênante que JQUERY, principalement parce que le navigateur FF traitera vos sauts de ligne comme des éléments DOM
<div id="test"> <div></div> <div></div> </div>
Native JS obtient les éléments enfants sous l'élément avec test d'identification.
Peut être utilisé :
var a = docuemnt.getElementById("test").getElementsByTagName_r("div");
Ce n'est pas un problème
À ce moment a.length=2;
Mais si on utilise une autre méthode
var b =document.getElementByIdx_x("test").childNodes;
Pour le moment, b.length ne pose aucun problème dans le navigateur IE, il est toujours égal à 2, mais dans le navigateur FF, ce sera 4, car FF traite également les sauts de ligne comme un élément.
Donc, ici, nous allons faire du traitement. Nous devons parcourir ces éléments et supprimer tous les éléments qui sont des espaces et du texte.
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) } } }
La fonction ci-dessus traverse les éléments enfants. Lorsqu'il y a un type de nœud dans l'élément qui est du texte et que la valeur du nœud du type de texte est vide. Supprimez-le simplement.
nodeNames peut obtenir le type de nœud d'un nœud, /s/ est l'expression régulière de caractères non vides en JS. Ajoutez devant ! , ça veut dire le caractère vide
La méthode test() est utilisée pour vérifier si une chaîne correspond à un certain modèle. La syntaxe est : RegExpObject.test(string)
Renvoie vrai si la chaîne contient du texte correspondant à RegExpObject, sinon renvoie faux.
nodeValue signifie obtenir la valeur dans ce nœud.
removeChild supprime les éléments enfants de l'élément.
Après cela, avant d'appeler les propriétés du fils, du père, du frère, appelez simplement la fonction ci-dessus pour libérer les espaces
<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>
Ce qui suit présente la méthode JQUERY pour trouver des nœuds parents, enfants et frères et sœurs
jQuery.parent(expr) Pour trouver le nœud parent, vous pouvez transmettre expr pour le filtrage, comme $("span").parent() ou $("span").parent(".class")
jQuery.parents(expr), similaire à jQuery.parents(expr), mais recherche tous les éléments ancêtres, sans se limiter aux éléments parents
jQuery.children(expr). Renvoie tous les nœuds enfants. Cette méthode ne renverra que les nœuds enfants directs et ne renverra pas tous les nœuds descendants
jQuery.contents(), renvoie tout le contenu ci-dessous, y compris les nœuds et le texte. La différence entre cette méthode et children() est que l'inclusion de texte vide sera également traitée comme un
L'objet jQuery est renvoyé, children() ne renverra que les nœuds
jQuery.prev(), renvoie le nœud frère précédent, pas tous les nœuds frères
jQuery.prevAll(), renvoie tous les nœuds frères précédents
jQuery.next(), renvoie le nœud frère suivant, pas tous les nœuds frères
jQuery.nextAll(), renvoie tous les nœuds frères suivants
jQuery.siblings(), renvoie les nœuds frères, indépendamment de l'avant ou de l'arrière
jQuery.find(expr) est complètement différent de jQuery.filter(expr). jQuery.filter() filtre une partie de la collection initiale d'objets jQuery, tandis que jQuery.find()
Le résultat renvoyé ne contiendra pas le contenu de la collection initiale. Par exemple, $("p"), find("span") commence à partir de l'élément e388a4556c0f65e1904146cc1a846bee pour rechercher 45a2772a6b6107b401db3c9b82c049c2, ce qui équivaut à $( "p span" )
L'introduction ci-dessus concerne js jquery pour obtenir le niveau frère de l'élément actuel. J'espère que cela sera utile à tout le monde.