使用jQuery过滤两种输入类型
Using jQuery to filtering with two input types
我正在尝试使用复选框和下拉菜单来过滤(.hide(),.show())div。我有一个正在工作的示例,但需要这两个函数相互检查。
http://jsfiddle.net/fj8vLns1/3/
这个想法是选中链接2的复选框,并在下拉菜单上选择2015,只显示div2(而不是1和2)。
JS-
jQuery("input[type='checkbox']").prop("checked", true);
$("input[type='checkbox']").on("click", function () {
var selector = $(this).data("toggle");
if ($(this).prop('checked')) {
$(selector).show();
} else {
$(selector).hide();
}
});
$('#year').change(function () {
var val = $('#year').val();
$('.yearselected').hide();
if (val) {
$("." + val).show();
}
});
HTML
<input type="checkbox" data-toggle="#div1" />link 1
<input type="checkbox" data-toggle="#div2" />link 2
<input type="checkbox" data-toggle="#div3" />link 3
<input type="checkbox" data-toggle="#div4" />link 4
<select id="year">
<option>2015</option>
<option>2014</option>
</select>
<div id="div1" class="yearselected 2015">div 1</div>
<div id="div2" class="yearselected 2015">div 2</div>
<div id="div3" class="yearselected 2014">div 3</div>
<div id="div4" class="yearselected 2014">div 4</div>
您需要为复选框div id和year select value class选择器制作一个组合选择器。为了实现这一点,我不得不更改您的代码。因此,如果您选中链接1和链接2复选框中的"2015年"复选框,则过滤器选择器将变为#div1.2015,#div2.2015
。
查看下面的演示。
var $divs = $('.yearselected');
$("input[type='checkbox'], #year").on("change", function () {
var selector = getFilter();
$divs.hide().filter(selector).show();
});
function getFilter() {
return $(':checkbox:checked').map(function() {
return $(this).data('toggle') + '.' + $('#year').val()
}).get().join();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" data-toggle="#div1" />link 1
<input type="checkbox" data-toggle="#div2" />link 2
<input type="checkbox" data-toggle="#div3" />link 3
<input type="checkbox" data-toggle="#div4" />link 4
<select id="year">
<option>2015</option>
<option>2014</option>
</select>
<div id="div1" class="yearselected 2015">div 1</div>
<div id="div2" class="yearselected 2015">div 2</div>
<div id="div3" class="yearselected 2014">div 3</div>
<div id="div4" class="yearselected 2014">div 4</div>
相关文章:
- 在<输入类型=“;文件“/>
- 如何将输入类型值或id从一个jsp传递到另一个jsp页面
- 可以't将几个数字设置为<输入类型=“;数字“>
- 在输入类型日期中设置日期
- 如何将键入的文本从一个输入类型的文本复制到另一个
- 输入类型按钮返回历史记录并返回顶部
- 从HTML表单发布blob的表单输入类型是什么
- 输入类型文件的未捕获类型错误
- 如何在jQuery Mobile中设置100%宽度的输入类型日期
- 输入类型=文件验证停止其他输入类型验证
- 如何显示在输入类型文件中选择的文件
- jQuery Modal Popup-回发后输入类型设置为null
- 在控制器中将输入类型时间更改为秒
- 更改具有相同id的输入类型的所有值
- 对于每个输入类型,使用javascript获取值
- 输入类型范围在angularjs重复内不起作用
- 我如何使HTML5<输入类型=月份>以在所有浏览器上工作
- 如何调用两个函数是一种html输入类型
- 如何使按钮作为输入类型文件
- 可以设置输入类型=文件的文本框的高度