У меня есть 2 легенды и 2 div, я хочу использовать javascript для щелкните по легенде (signin_user), после чего отобразится ее содержимое, а другое скрыто.
когда другой - clicked (signin_admin) отображается, а другое скрыто
это обычно называется формой входа в стиле табуляции
нет jquery
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<script>
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('legend', 'div').forEach(legend, div => {
div.addEventListener('onclick', () => {
// change color to selected legend
this.style.color = "#c8cace"
//show select div content
//make another legend white
//hide another div content
})
})
})
</script>
<style>
/* by default signin user is highlighted */
.user {
background-color: #c8cace;
}
</style>
<body>
<div id = "user">
<legend class = "user">signin user</legend>
<input type = "text" name = "user">
<input type = "submit" id = "submit-user">
</div>
<div id = "admin">
<legend class = "admin">signin admin</legend>
<input type = "text" name = "admin">
<input type = "submit" id = "submit-admin">
</div>
</body>
</html>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете переключить класс hide, используя атрибуты classListadd/remove:
.hide {
display: none;
}
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('legend').forEach(function(item) {
item.addEventListener('click', click_action);
});
});
function click_action(e) {
e.stopPropagation();
//Hide Other divs content
document.querySelectorAll('input').forEach(function(input) {
input.classList.add('hide');
});
//Show licked one content
event.target.parentNode.querySelectorAll('input').forEach(function(input) {
input.classList.remove('hide');
});
}.user {
background-color: #c8cace;
}
.hide {
display: none;
}<div id = "user">
<legend class = "user">signin user</legend>
<input type = "text" name = "user">
<input type = "submit" id = "submit-user">
</div>
<div id = "admin">
<legend class = "admin">signin admin</legend>
<input type = "text" name = "admin" class = "hide">
<input type = "submit" id = "submit-admin" class = "hide">
</div>