Dato un certo elemento, per esempio un <div id=div1, annidato dentro altri contenitori, è possibile sapere se è annidato dentro un contenitore di dato id?
![]()
Dato un certo elemento, per esempio un <div id=div1, annidato dentro altri contenitori, è possibile sapere se è annidato dentro un contenitore di dato id?
![]()
Pietro
<div onclick="if (this.parentNode != undefined) alert('Mio papà ha id ' + this.parentNode.getAttribute('id'))">
Non l'ho provato ma dovrebbe funzionare così.
Questo funziona se stai controllando il contenitore padre... se vuoi fare un controllo anche tra gli antenati serve una funzione differente
Edit_: l'ho modificato.
Vuoi aiutare la riforestazione responsabile?
Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)
Ti ringrazioOriginariamente inviato da fcaldera
<div onclick="if (this.parentNode != undefined) alert('Mio papà ha id ' + this.parentNode.getAttribute('id'))">
Non l'ho provato ma dovrebbe funzionare così.
Questo funziona se stai controllando il contenitore padre... se vuoi fare un controllo anche tra gli antenati serve una funzione differente
Edit_: l'ho modificato.allora sto pensando bene, perchè ho fatto una funzione ricorsiva sfruttando proprio il parentNode
![]()
Pietro
<div onclick="checkIfParent(this, 'id_da_ricercare')"></div>
Questo dovrebbe/potrebbe funzionare anche per cercare gli antenati... ma non ho provato nemmeno questo.codice:function checkIfParent(div, searchId) { var thisdiv = div; while (thisdiv.parentNode != undefined) { if (thisdiv.parentNode.getAttribute('id') == searchId) { alert(div +" è contenuto in "+ searchId); return true; } thisdiv = thisdiv.parentNode; } alert(div +" non è contenuto in "+searchId); return false; }
Vuoi aiutare la riforestazione responsabile?
Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)
Interessante perchè non fa uso della ricorsione
L'ho modificato così:
codice://--------------------------------------------------- //restituisce true o false a seconda se elemento //sia contenuto nel contenitore di id = searchId //--------------------------------------------------- function checkIfParent(elemento, searchId) { var thisdiv = elemento; if(thisdiv.getAttribute('id') == searchId) { alert(elemento.id + " è " + searchId); return true; } while (thisdiv.parentNode.tagName != undefined) { if (thisdiv.parentNode.getAttribute('id') == searchId) { alert(elemento.id + " è contenuto in "+ searchId); return true; } thisdiv = thisdiv.parentNode; } alert(elemento.id + " non è contenuto in " + searchId); return false; }![]()
Pietro