Interesantan toggler nalazi se na http://rozza.blog.hr:
<_!-- Prvi box -->
<_span><_span><_input value="" class="gumbic1" onclick="if (this.parentNode.parentNode.getElementsByTagName('span')[1].getElementsByTagName('span')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('span')[1].getElementsByTagName('span')[0].style.display = '';this.innerText = ''; this.value = ''; } else { this.parentNode.parentNode.getElementsByTagName('span')[1].getElementsByTagName('span')[0].style.display = 'none'; this.innerText = ''; this.value = ''; }" title="" type="button" /><_/span><_span><_span style="display: none;">
ovdje ide sadržaj
<_/span>
<_/span>
<_/span>
<_!-- Kraj -->
Kupus! HTML izgleda ovako:
<_!-- Prvi box -->
<_span>
<_span>
<_input />
<_/span>
<_span>
<_span>
sadržaj
<_/span>
<_/span>
<_/span>
<_!-- Kraj -->
Kako bi bilo da se JavaScript izdvoji iz HTML-a?
<_script type="text/javascript">
onload = function() {
document.getElementsByTagName('input')[0].onclick = clc;
}
function clc() {
var t = this;
if (t.parentNode.parentNode.getElementsByTagName('span')[1].getElementsByTagName('span')[0].style.display != '') {
t.parentNode.parentNode.getElementsByTagName('span')[1].getElementsByTagName('span')[0].style.display = '';
t.innerText = '';
t.value = ''; //zatvori
}
else {
t.parentNode.parentNode.getElementsByTagName('span')[1].getElementsByTagName('span')[0].style.display = 'none';
t.innerText = '';
t.value = ''; //otvori
}
}
<_/script>
Budući da se parentNode i getElementsByTagName pojavljuju više puta, kôd se može još skratiti:
// …
function clc() {
var t = this.parentNode.nextSibling.firstChild;
t.style.display = t.style.display !=='' ? '' : 'none';
}
JS na kraju izgleda ovako:
<_script type="text/javascript">
onload = function() {
document.getElementsByTagName('input')[0].onclick = clc;
}
function clc() {
var t = this.parentNode.nextSibling.firstChild;
t.style.display = t.style.display !=='' ? '' : 'none';
}
<_/script>
Komentari