You should give the “responding” divs a generic class:
<div id="respond-1" class="response' style="display:none;"></div>
Then you can get all the divs with getElementsByTagName, compare the class and hide them according to:
function hideAllResponses() {
var divs = document.getElementsByTagName('div');
for(var i = divs.length; i-- ;) {
var div = divs[i];
if(div.className === 'response') {
div.style.display = 'none';
}
}
}
getElementsByClassName, IE8 . , , , , ( querySelectorAll). .
:
: , , :
var current = null;
function showresponddiv(messagedivid){
var id = messagedivid.replace("message-", "respond-"),
div = document.getElementById(id);
if(current && current !== div) {
current.style.display = 'none';
}
if (div.style.display=="none"){
div.style.display="inline";
current = div;
}
else {
div.style.display="none";
}
}
: . . DEMO.