0. причём здесь MSDN?
1.
DIV.box
не существует в указанной разметке, но существует
div#box
2. для каждой радиокнопки (которая не обязательно должна быть именно радиокнопкой) делается свой вариант
onclick="select('div#box', 'div.a')"
3.
select()
пишется элементарно:
function select(where, what) {
for (const node of document.querySelectorAll(`${where} > :not(${what})`)) {
node.setAttribute('aria-hidden', 'true');
// то, что подразумевается под "скрывал"
}
for (const node of document.querySelectorAll(`${where} > ${what}`)) {
node.removeAttribute('aria-hidden');
// обратное тому, что подразумевается под "скрывал"
}
}
4. если разметка такая, то всё теоретически можно сделать и на CSS без JS, но это уже другая история
после переименования select() в selectOne() всё работает — написанные строкой через атрибуты обработчики ЕМНИП имеют сам элемент как ближайший resolving-scope — тело как бы обёрнуто в
with (this) { ... }
, а у
<input>
есть свой select():