所以我有5个单选按钮和5个图像。单击时,我希望每个按钮显示特定图像。但是,当我用其他东西检查单选按钮时,它会添加另一个图像而不是替换它!
这是代码
https://jsfiddle.net/fcd8s9c8/5/
这是我的JS代码
$("#ekoloshki").change(function() {
if (this.checked) {
$("#ekoloshkislika").removeClass("skrijgo");
}
else {
$("#ekoloshkislika").addClass("skrijgo");
}
});
答案 0 :(得分:2)
您需要使用当前选中的单选按钮中的ID,并将其与单词slika
连接。
$('img').addClass('skrijgo');
$('img#' + $(this).attr('id') + 'slika').removeClass('skrijgo');
我已添加图片以说明
$(document).ready(function() {
$('[name="karta"]').change(function() {
$('img').addClass('skrijgo');
$('img#' + $(this).attr('id') + 'slika').removeClass('skrijgo');
});
});

#listata {
display: block;
margin-right: 25%;
margin-left: 25%;
margin-top: 0%;
background-color: white;
}
.unselectable {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
#checkboxes {
display: block;
width: 100%;
background-color: white;
border-style: solid;
border-color: black;
height: 5%;
}
.skrijgo {
display: none;
}
#kartata {
margin-top: 2%;
position: relative;
float: center;
display: block;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section id="listata">
<div id="checkboxes" class="unselectable">
<label><input type="Radio" id="ekoloshki" name="karta">Еколошки фактори</label>
<p>
<label><input type="Radio" id="socio" name="karta">Социо-економски фактори</label>
<p>
<label><input type="Radio" id="prirodni" name="karta">Природно-географски фактори</label>
<p>
<label><input type="Radio" id="infra" name="karta">Инфраструктурни фактори</label>
<p>
<label><input type="Radio" id="site" name="karta">Сите фактори</label>
</div>
</section>
<!-- Kartite -->
<section>
<div id="kartata">
<img src="https://ichef.bbci.co.uk/news/660/cpsprodpb/37B5/production/_89716241_thinkstockphotos-523060154.jpg" id="ekoloshkislika" class="skrijgo">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQhILUOq_dTGoC4-EqYrk25I3G3RuQkz09hgqABMs9AOg2h-dumkA" id="socioslika" class="skrijgo">
<img src="http://lmsotfy.com/so.png" id="prirodnislika" class="skrijgo">
<img src="https://cdn-images-1.medium.com/max/785/1*H-25KB7EbSHjv70HXrdl6w.png" id="infraslika" class="skrijgo">
<img src="http://www.stickpng.com/assets/images/586aaf811fdce414493f5105.png" id="siteslika" class="skrijgo">
</div>
</section>
&#13;
答案 1 :(得分:1)
听起来您想将skrijgo
类添加到您不想显示的所有其他图像中。
我会选择更通用的解决方案。例如
$('input[name="kartka"][id]').on('change', function() {
let checkId = `${this.id}slika`
$('#kartata img').each((i, elt) => {
elt.classList.toggle('skrijgo', elt.id !== checkId)
})
})
也就是说,只要名为“kartka”(带有id
属性)的输入发生更改,就会迭代<img>
内的所有#kartata
元素,如果他们的id
属性与单选按钮的id + 'slika'
匹配,然后删除该类。如果没有,则添加该类。