我有这个代码,用户可以点击某些复选框,并根据他们的输入提供各种答案的输出。
我对JavaScript很陌生,所以我只想尝试挖掘某些案例以便学习。我非常确信,有一种更聪明的方法来执行这个JS代码,但我不确定如何。
我不希望你必须执行正确的代码方式,但只是告诉我应该去哪个方向来做这个"对"。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<style>
.hide {
display: none; //add this property
}
</style>
</head>
<body>
<div class="decider hide">
<p style="font-size:18px;color:#000;">Hvilken bolig bor du i?</p>
<label class="checkbox">
<input id="egetHus" type="checkbox" name="Request" value="Request" />
Eget hus/rækkehus </label>
<label class="checkbox">
<input id="lejetHus" type="checkbox" name="Download" value="Download" />
Lejet hus/rækkehus</label>
<label class="checkbox">
<input id="lejlighed" type="checkbox" name="test" value="test" />
Ejer-/lejet lejlighed</label>
<label class="checkbox">
<input id="fritidshus" type="checkbox" name="test1" value="test1" />
Fritidshus</label>
<br />
<p style="font-size:18px;color:#000;">Har du børn?</p>
<label class="checkbox">
<input id="hjemmeboendeBoern" type="checkbox" name="Request" value="Request" />
Hjemmeboende børn</label>
<label class="checkbox">
<input id="udeboendeBoern" type="checkbox" name="Download" value="Download" />
Udeboende børn</label>
<br />
<p style="font-size:18px;color:#000;">Hvilket transportmidler har du?</p>
<label class="checkbox">
<input id="bil" type="checkbox" name="Request" value="Request" />
Bil</label>
<label class="checkbox">
<input id="motorcykel" type="checkbox" name="Download" value="Download" />
Motorcykel</label>
<label class="checkbox">
<input id="knallert" type="checkbox" name="test" value="test" />
Knallert</label>
<label class="checkbox">
<input id="cykel" type="checkbox" name="test1" value="test1" />
Cykel</label>
<br />
<span class="select">
<input type="button" id="send-decide" alt="submit" value="select" />
</span>
</div>
<!-- VISIBLE IF CHECKED -->
<div class="egetHus">
<p>this is first box</p>
</div>
<div class="lejetHus">
<p>this is second box</p>
</div>
<div class="lejlighed">
<p>this is third box</p>
</div>
<div class="fritidshus">
<p>this is fourth box</p>
</div>
<div class="hjemmeboendeBoern">
<p>this is fifth box</p>
</div>
<div class="udeboendeBoern">
<p>this is sixth box</p>
</div>
<div class="bil">
<p>this is sixth box</p>
</div>
<div class="motorcykel">
<p>this is sixth box</p>
</div>
<div class="knallert">
<p>this is sixth box</p>
</div>
<div class="cykel">
<p>this is sixth box</p>
</div>
<script>
$(function() {
$('.decider').removeClass('hide');
$('.egetHus,.lejetHus,.lejlighed,.fritidshus,.hjemmeboendeBoern,.udeboendeBoern,.bil,.motorcykel,.knallert,.cykel').addClass('hide'); //add hide to both the class
$("#send-decide").click(function() {
if ($('input[type="checkbox"]:checked').length) {
$('.decider ').addClass('hide');
if ($('#egetHus').is(':checked')) {
$('.egetHus').removeClass('hide');
}
if ($('#lejetHus').is(':checked')) {
$('.lejetHus').removeClass('hide');
}
if ($('#lejlighed').is(':checked')) {
$('.lejlighed').removeClass('hide');
}
if ($('#fritidshus').is(':checked')) {
$('.fritidshus').removeClass('hide');
}
if ($('#hjemmeboendeBoern').is(':checked')) {
$('.hjemmeboendeBoern').removeClass('hide');
}
if ($('#udeboendeBoern').is(':checked')) {
$('.udeboendeBoern').removeClass('hide');
}
if ($('#bil').is(':checked')) {
$('.bil').removeClass('hide');
}
if ($('#motorcykel').is(':checked')) {
$('.motorcykel').removeClass('hide');
}
if ($('#knallert').is(':checked')) {
$('.knallert').removeClass('hide');
}
if ($('#cykel').is(':checked')) {
$('.cykel').removeClass('hide');
}
} else
alert('select a checkbox');
});
});
</script>
</body>
</html>
&#13;
答案 0 :(得分:1)
您可以使用以下代码替换所有if else
语句
$('input[type="checkbox"]:checked').each(function(index, el) {
$('.' + el.id).removeClass('hide')
});
这将有效,因为每个复选框的id和相应的p类都是相同的。
答案 1 :(得分:0)
我做得有点干净简单。如果o / p不正确,请尝试并发表评论。
$(function() {
var arr = [
'egetHus',
'lejetHus',
'lejlighed',
'fritidshus',
'hjemmeboendeBoern',
'udeboendeBoern',
'bil',
'motorcykel',
'knallert',
'cykel'
];
$('.decider').removeClass('hide');
$.each(arr, function(key, elem) {
$('.' + elem).addClass('hide'); //add hide to both the class
});
$("#send-decide").click(function() {
if ($('input[type="checkbox"]:checked').length) {
$('.decider ').addClass('hide');
$.each(arr, function(key, elem) {
if ($('#' + elem).prop('checked') === true) {
$('.' + elem).removeClass('hide');
}
});
} else
alert('select a checkbox');
});
});
.hide {
display: none; //add this property
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="decider hide">
<p style="font-size:18px;color:#000;">Hvilken bolig bor du i?</p>
<label class="checkbox">
<input id="egetHus" type="checkbox" name="Request" value="Request" />
Eget hus/rækkehus </label>
<label class="checkbox">
<input id="lejetHus" type="checkbox" name="Download" value="Download" />
Lejet hus/rækkehus</label>
<label class="checkbox">
<input id="lejlighed" type="checkbox" name="test" value="test" />
Ejer-/lejet lejlighed</label>
<label class="checkbox">
<input id="fritidshus" type="checkbox" name="test1" value="test1" />
Fritidshus</label>
<br />
<p style="font-size:18px;color:#000;">Har du børn?</p>
<label class="checkbox">
<input id="hjemmeboendeBoern" type="checkbox" name="Request" value="Request" />
Hjemmeboende børn</label>
<label class="checkbox">
<input id="udeboendeBoern" type="checkbox" name="Download" value="Download" />
Udeboende børn</label>
<br />
<p style="font-size:18px;color:#000;">Hvilket transportmidler har du?</p>
<label class="checkbox">
<input id="bil" type="checkbox" name="Request" value="Request" />
Bil</label>
<label class="checkbox">
<input id="motorcykel" type="checkbox" name="Download" value="Download" />
Motorcykel</label>
<label class="checkbox">
<input id="knallert" type="checkbox" name="test" value="test" />
Knallert</label>
<label class="checkbox">
<input id="cykel" type="checkbox" name="test1" value="test1" />
Cykel</label>
<br />
<span class="select">
<input type="button" id="send-decide" alt="submit" value="select" />
</span> </div>
<!-- VISIBLE IF CHECKED -->
<div class="egetHus">
<p>this is first box</p>
</div>
<div class="lejetHus">
<p>this is second box</p>
</div>
<div class="lejlighed">
<p>this is third box</p>
</div>
<div class="fritidshus">
<p>this is fourth box</p>
</div>
<div class="hjemmeboendeBoern">
<p>this is fifth box</p>
</div>
<div class="udeboendeBoern">
<p>this is sixth box</p>
</div>
<div class="bil">
<p>this is sixth box</p>
</div>
<div class="motorcykel">
<p>this is sixth box</p>
</div>
<div class="knallert">
<p>this is sixth box</p>
</div>
<div class="cykel">
<p>this is sixth box</p>
</div>