Dokument.createElement / Dokument.Körper.appendChild nicht erstellen / schreiben von div, wo Sie ausgeführt werden
Habe ich ein div mit der ID 'headercontent", und ich muss ein script schreiben, einen link zu den anderen, wenn javascript aktiviert ist, auf das Benutzer system, sondern hat auch eine Sicherung mit noscript nur im Fall, dass der Benutzer nicht javascript aktiviert haben.
Code läuft wunderbar und die 'a' - element geschrieben werden, wenn ausgeführt, aber das problem ist, dass der code nicht geschrieben sind in dem div ist es ausgeführt. Schreibt es ausserhalb der "headercontent' div-Element und ignoriert die Klasse, Stil komplett, obwohl es geschrieben wird, in die gerenderte code. Ich bin nicht allzu besorgt über das styling/Klasse, da kann ich nur hinzufügen, dass ein style-Attribut zu dem element, und bekommen es schriftlich per javascript, falls nötig, aber ich bin mehr besorgt über, warum die das schreiben von code außerhalb des div.
Mein code ist:
<div id="headercontent">
hey, this is a div.
<a href="#" class="button">This is a link</a>
<a href="#" class="button">This is another link</a>
<script type="text/javascript">
writeask()
function writeask() {
var writeaskbox = document.createElement('a');
writeaskbox.href = 'javascript:askbox()';
writeaskbox.className = 'button';
writeaskbox.innerHTML =
['Ask'].join(' ')
document.body.appendChild(writeaskbox);
}
function askbox(){
var askbox = document.getElementById('askbox')
if (askbox.style.display == 'none') {
askbox.style.display = 'block'
askbox.style.height = '150px'
} else {
askbox.style.display = 'none'
askbox.style.height = '0px'
}
}
</script>
<noscript><a href="/ask" class="button">Ask</a></noscript>
</div>
Wie bekomme ich die writeask () - Funktion zum erstellen dieses eine element in das gleiche div ist es ausgeführt? So dass die endgültige Ausgabe ist:
<div id="headercontent">
hey, this is a div.
<a href="#" class="button">This is a link</a>
<a href="#" class="button">This is another link</a>
<a href="javascript: askbox()" class="button">Ask</a>
</div>
Statt:
<div id="headercontent">
hey, this is a div.
<a href="#" class="button">This is a link</a>
<a href="#" class="button">This is another link</a>
</div>
<a href="javascript: askbox()" class="button">Ask</a>
Ich bin noch Anfänger mit javascript also ich bin ziemlich verwirrt jetzt. Wenn jemand helfen könnte, wäre das sehr willkommen.
Vielen Dank im Voraus. Dan.
InformationsquelleAutor Danny S | 2012-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
First of all, werden Sie den Aufruf writeask() vor der Funktion existiert, so dass in diesem Fall Sie sollten es tun, die andere Weise herum. Es sollte sein:
und dann sind Sie anfügen an den Körper
nicht den div, wie es sein sollte
Ich lese in, dass, ich danke Ihnen sehr.
Die Funktion - Funktionsaufruf, um nicht ein Problem. JavaScript Hebezeuge definition die Funktion der oben angegebenen Bereich.
Ich nach unten gestimmt, weil Sie nannte es einen Fehler, und das war es mit Sicherheit nicht. Die Lesbarkeit betrifft nicht Fehler machen.
Der JavaScript-parser muss nicht extra suchen; bei Laufzeit Hebezeuge alle eine solche Funktion und var-Deklarationen an den Anfang, und dann folgt der rest.
InformationsquelleAutor André Alçada Padez
Statt
verwenden
InformationsquelleAutor caleb
Statt
Sollten Sie das folgende tun:
InformationsquelleAutor darren102