View Full Version : [Javascript] Quesito DOM
satoshi2005
14-01-2008, 17:52
Salve gente,
Non sono sicuro che si possa fare, ma qualcuno di voi magari lo sa e può aiutarmi.. Allora la domanda è questa, avendo il seguente codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript">
function Oggetto(width, height) {
var div = document.createElement('div');
div.style.width = width + "px";
div.style.height = height + "px";
div.style.backgroundColor = "#cccccc";
}
</script>
</head>
<body>
<div id="qui">
<script type="text/javascript">
oggetto = new Oggetto(200, 100);
</script>
</div>
</body>
</html>
Vorrei che l'elemento che creo con il DOM nell'oggetto "Oggetto" lo inserisca li dove ho richiamato l'oggetto (nel div "qui" in pratica). Come posso fare?
Grazie mille! Sato
<element.appendChild> (http://developer.mozilla.org/en/docs/DOM:element.appendChild):
document.getElementById("qui").appendChild(div);
satoshi2005
15-01-2008, 07:39
<element.appendChild> (http://developer.mozilla.org/en/docs/DOM:element.appendChild):
document.getElementById("qui").appendChild(div);
Certo che così funzionerebbe, ma io intendo dire che all'interno dello script io non conosca il fatto che questo script è all'interno del div "qui" capisci? Vorrei che lo script riuscisse a mettere il div (che crea con createElement) nel div "qui" senza però sapere l'id del div "qui"..
Grazie comunque! sato
<script type="text/javascript">
function Oggetto(element, width, height) {
var div = document.createElement('div');
div.style.width = width + "px";
div.style.height = height + "px";
div.style.backgroundColor = "#cccccc";
element.appendChild(div);
//Ti sei dimenticato il return
return div;
}
</script>
<div id="qui">
<script type="text/javascript">
var div = document.getElementById("qui");
oggetto = new Oggetto(div, 200, 100);
</script>
</div>
satoshi2005
15-01-2008, 10:29
Beh per tanto così ci metto meno a fare così:
<script type="text/javascript">
function Oggetto(elementId, width, height) {
var div = document.createElement('div');
div.style.width = width + "px";
div.style.height = height + "px";
div.style.backgroundColor = "#cccccc";
document.getElementById(elementId).appendChild(div);
}
</script>
<div id="qui">
<script type="text/javascript">
oggetto = new Oggetto("qui", 200, 100);
</script>
</div>
No? Il fatto è che vorrei che fosse dinamico, che lo inserisca dove c'è "new Oggetto" senza dovergli dire il div nella quale è contenuto (serev un modo per fare in modo che lui sappia da solo dov'è contenuto lo script!)
Grazie..
Mi sorge spontanea una domanda:
A che ti serve?
satoshi2005
15-01-2008, 21:42
Mi sorge spontanea una domanda:
A che ti serve?
Perché è comodo fare "new Oggetto" senza dover fare ad esempio
var questo = new Oggetto(...);
document.write(questo.codice);
Il fatto è che non posso usare il document.write perché se lo uso gli eventi non funzionano. Mi spiego:
<script type="text/javascript">
function Oggetto(elementId, width, height) {
var container = document.createElement("div");
var div = document.createElement('div');
div.style.width = width + "px";
div.style.height = height + "px";
div.style.backgroundColor = "#cccccc";
div.onclick = function (e) {
alert("Cliccato!");
}
container.appendChild(div);
// Nei seguenti casi l'evento...
document.write(container.innerHTML); // non funziona
document.getElementById("qui").appendChild(container); // funziona
}
</script>
<div id="qui">
<script type="text/javascript">
oggetto = new Oggetto("qui", 200, 100);
</script>
</div>
Spero di essermi spiegato..
Grazie, sato
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.