Я пытаюсь проверить и очистить любой div
с помощью demoForm
класса, которые находятся внутри контейнера div
. demoForm
div
скрыты по умолчанию при загрузке страницы, но появляется, когда пользователь нажимает на addUser
ссылку. Он может появляться в нескольких местах, поскольку ссылка доступна в нескольких местах.
Перед добавлением нового я хотел бы очистить все существующие в контейнере, которые раньше были созданы пользователем.
В настоящее время я делаю:
$(".addUser").click(function(){
$('.demoForm').hide();
});
Как я могу использовать if else или что-то подобное, чтобы проверять только открытые и закрывать их, а не просто делать так, как я.
<!DOCTYPE html>
<html>
<head>
<title>Generated by Edit Plus</title>
<link rel="stylesheet" href="http://localhost/site/css/bootstrap.css" media="screen">
<script type="text/javascript" src="http://localhost/site/scripts/jQueryCore.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".addUser").click(function(){
$('.demoForm').hide();
});
});
</script>
<style type="text/css">
.toolOptions{
display:none;
}
</style>
</head>
<body>
<div class="container">
<div class="addUser">Add a new user</div>
<div class="demoForm">
I'm the form div.
</div>
<div class="demoForm">
I'm the form div.
</div>
<div class="demoForm">
I'm the form div
</div>
</div>
</body>
</html>
Нет необходимости использовать здесь инструкцию If else. Вы можете легко сделать это с помощью :visaible
Например
$(".addUser").click(function(){
$('.demoForm:visible').hide();
});
ИЛИ
$(".addUser").click(function(){
if($('.demoForm').is(':visible')){
$('.demoForm').hide();
}
});
ИЛИ
$(".addUser").click(function(){
if($('.container').find('.demoForm').is(':visible')){
$('.container').find('.demoForm').hide();
}
});
ИЛИ
$(".addUser").click(function(){
$('.container').find('.demoForm:visible').hide();
});
Вы можете выбрать все видимые div, используя :visible
селектор и скрывать их: -
$(".addUser").click(function () {
$('.demoForm:visible').hide();
});
Использование :visible
:
$(".addUser").click(function(){
$('.demoForm:visible').hide();
});
:visible
, но нет веской причины, если вы не хотите, чтобы какой-либо из них оставался видимым.