使多张图片可见的复选框
Checkbox that make multiple pictures visible
我对js和html很陌生,并且在任务中遇到了一些问题。我想创建一个"复选框",使一些图片可见。例如,我有 5 张照片。每张照片上都有一个男性或女性。现在我想让所有女性图片都可见,如果有人选中"女性复选框"。到目前为止,我有一个jq解决方案,并尝试将其转换为js,但失败了。有谁知道如何解决这个问题?
$(document).ready(function() {
//Event handler for checkboxes with name="gender"
$(':checkbox[name=gender]').on('change',function() {
$('img[data-gender=' + this.value + ']').css('visibility', this.checked ? 'visible' : 'hidden');
});
//Event handler for checkboxes with name="visibility"
$(':checkbox[name=visibility]').on('change', function() {
$('img[src*=' + this.value + ']').css('visibility',this.checked ? 'visible' : 'hidden');
});
});
.myimage {
visibility:hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class='Humans'>
<label for="gender1">male</label>
<input type="checkbox" name="gender" id="gender1" value="male" /><br/>
<label for="gender2">female</label>
<input type="checkbox" name="gender" id="gender2" value="female" /><br/>
<label for="visibility1">Person1</label>
<input type="checkbox" name="visibility" id="visibility1" value="Person1" /><br/>
<label for="visibility2">Person2</label>
<input type="checkbox" name="visibility" id="visibility2" value="Person2" /><br/>
<label for="visibility3">Person3</label>
<input type="checkbox" name="visibility" id="visibility3" value="Person3" /><br/>
<label for="visibility4">Person4</label>
<input type="checkbox" name="visibility" id="visibility4" value="Person4" /><br/>
<label for="visibility5">Person5</label>
<input type="checkbox" name="visibility" id="visibility5" value="Person5" /><br/>
<img src='/home/Person1.png' data-gender="male" class="myimage"/> <!--male-->
<img src='/home/Person2.png' data-gender="female" class="myimage"/> <!--female-->
<img src='/home/Person3.png' data-gender="female" class="myimage"/> <!--female-->
<img src='/home/Person4.png' data-gender="male" class="myimage"/> <!--male-->
<img src='/home/Person5.png' data-gender="female" class="myimage"/> <!--female-->
</div>
我试图通过将函数更改为
function checkgender(type) {
for (i = 1; i < 6; i++) {
var el = document.getElementById(i);
if(type==1){
if (el.data-gender=="male") {
el.style.visibility="visible";
}
else {
el.style.visibility="hidden";
}
}
else if(type==2){
if (el.data-gender=="female") {
el.style.visibility="visible";
}
else {
el.style.visibility="hidden";
}
}
}
}
<label for="gender1">male</label>
<input type="checkbox" name="gender" id="gender1" value="male" onChange="checkgender(1);" /><br/>
<label for="gender2">female</label>
<input type="checkbox" name="gender" id="gender2" value="female" onChange="checkgender(2);"/><br/>
<label for="visibility1">Person1</label>
<input type="checkbox" name="visibility" id="visibility1" value="Person1" /><br/>
<label for="visibility2">Person2</label>
<input type="checkbox" name="visibility" id="visibility2" value="Person2" /><br/>
<label for="visibility3">Person3</label>
<input type="checkbox" name="visibility" id="visibility3" value="Person3" /><br/>
<label for="visibility4">Person4</label>
<input type="checkbox" name="visibility" id="visibility4" value="Person4" /><br/>
<label for="visibility5">Person5</label>
<input type="checkbox" name="visibility" id="visibility5" value="Person5" /><br/>
<img id='1' src='/home/Person1.png' data-gender="male" class="myimage" style='visibility:hidden'/> <!--male-->
<img id='2' src='/home/Person2.png' data-gender="female" class="myimage" style='visibility:hidden'/> <!--female-->
<img id='3' src='/home/Person3.png' data-gender="female" class="myimage" style='visibility:hidden'/> <!--female-->
<img id='4' src='/home/Person4.png' data-gender="male" class="myimage" style='visibility:hidden'/> <!--male-->
<img id='5' src='/home/Person5.png' data-gender="female" class="myimage" style='visibility:hidden'/> <!--female-->
</div>
但它没有用。如果有人能告诉我如何解决它,那就太好了。
我以为我会把它作为一个官方答案,在将代码变成函数之后,问题是现在你以错误的方式请求了data-gender
属性(见 https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes)。您可以通过将if (el.data-gender==
替换为 if (el.dataset.gender==
来解决此问题。希望这有帮助,如果确实如此,请您接受!
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- 从复选框和Selects-KnockoutJS中获取值的总和
- 选中多个具有相同名称的复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用$.ajax发布多个复选框
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 使用jquery选中/取消选中单个复选框
- Angular JS Filter-通过3个复选框进行筛选
- 如果选中了多个复选框,如何添加事件
- Javascript复选框函数:;缺少:在属性id之后"
- JavaScript-切换“;全部检查”;复选框true/false
- 如何从javascript/jquery中的复选框中获取布尔值
- 使许多图片可见的复选框
- 使多张图片可见的复选框
- jQuery-使用复选框在背景图片和背景视频之间切换
- 根据复选框选择更改表行颜色?(我有两张桌子)