buongiorno
trovandomi nella situazione in cui mi viene passato un oggetto tipo 'pippo.innerHTML', volendo risalire a pippo, come si opera in js?
buongiorno
trovandomi nella situazione in cui mi viene passato un oggetto tipo 'pippo.innerHTML', volendo risalire a pippo, come si opera in js?
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
Non credo sia possibile... in effetti tu hai una stringa di testo e vorresti sapere cosa l'ha generata? tipo:
Personalmente non credo, ma sto ad osservarecodice:<div id="pippo">pluto</div> vedi </BODY> <script> function vedi(cosa) { alert(cosa.chiTiHaFatto()) } </script>![]()
Il guaio per i poveri computers e' che sono gli uomini a comandarli.
Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
Consultate la discussione in rilievo: script / discussioni utili
Usate la funzione di Ricerca del Forum
Non puoi passare pippo e da questo poi ottenere innerHTML?![]()
Se per qualche ragione vuoi invece continuare a usare questa strada ti consiglio l'utilizzo di qualche "escamotage":
Più di questo dubito che tu possa farecodice:function prendi(obj, prop) { if(!obj || !prop) return null; var get = obj[prop]; if(get) { get = Object(get); get._parentObj = obj; } return get; } //Esempio: var html = prendi(document.getElementById("obj"), "innerHTML"); alert(html._parentObj);![]()
il motivo per cui mi pongo questa domanda è il seguente:
ho una funzione a cui passo dei parametri
mi trovo a dover quindi operare sul riferimento innerHTML.codice:pippo({target: pippo.innerHTML,value: ciao mondo})
nel momento in cui però volessi, automaticamente anche dare a pippo uno style.border='1px solid red', allora dovrei risalire tipo salmone dalla proprietà all' oggetto stesso....
pensavo sinceramente, in prima battuta ad individuarlo tramite split sulla stringa, ma lo vedo limitante nel caso in cui passo oggetti complessi....
data la gerarchia della notazione, sarebbe plausibile pensar di andare a fare un split('.') e prendere in considerazione tutti gli elementi tranne l' ultimo, quindi
perfetto se mi venisse passata una stringa!codice:pippo({target: pippo.innerHTML,value: ciao mondo}) function pippo(Els) { var ciccio=Els.target; var Expl=ciccio.split('.'); Expl[Expl.length-2] = null; var ObjDiRiferimento = Expl.join('.'); //ed eccolo qui }
ma target E' e DEVE essere un oggetto....
a menochè non lo passo come oggetto e internamente lo possa convertire in stringa...
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
up!
hola mega![]()
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
Hai già provato come ti ho detto io?![]()
ancora no, sto cercando di capire anche come funziona il discorso 'constructor' perchè secondo me è interessante..
facendo diverse prove ho notato che qualsiasi proprietà di un oggetto, con il seguente codice
si ain IE che FF, e Safari invece si comportapressappoco come FF ...Codice PHP:
var pippo=document.getElementById('frutto').innerHTML;
alert ( typeof pippo.constructor ) // restituisce la funzione String()
var pluto =document.getElementById('frutto');
alert ( typeof pluto.constructor ) // restituisce object
che sia la strada buona?
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
Onestamente non capisco come ti possa aiutare la proprietà constructor![]()
Essa ti serve a capire qual'è la classe che ha generato l'oggetto; tra l'altro il secondo alert da 'undefined' in IE, ma questa è un'altra storia...