Это всё равно не решает п.3
Ладно, лучше поясню с помощью кода.
Поскольку автор хотел JS чистяком, то вот:
<a href="#" id="sh">Открыть все</a><hr />
<a href="#" class="no_text">Бла-бла1</a><p class="new_text" style="display:none">1-бла...</p>
<a href="#" class="no_text">Бла-бла2</a><p class="new_text" style="display:none">2-бла...</p>
<a href="#" class="no_text">Бла-бла3</a><p class="new_text" style="display:none">3-бла...</p>
<script type='text/javascript'>
(function() {
var aArr = document.getElementsByTagName('A');
for (var i=0; i<aArr.length; i++) {
aArr[i].onclick = function() {
var p = this.nextSibling,
vis = p.style.display;
p.style.display = (vis=='none') ? 'block' : 'none';
}
}
sh.onclick = function () {
var vis;
if(this.innerHTML=='Открыть все') {
vis = 'block', this.innerHTML='Закрыть все';
} else {
vis = 'none', this.innerHTML='Открыть все';
}
var pArr = document.getElementsByTagName('P');
for (var i=0; i<pArr.length; i++) {
pArr[i].style.display = vis;
}
}
})();
</script>