我有一个带有选项(月份)的HTML select
,我在div
元素中使用该选择过滤数据文本。该过滤器是一个简单的JS正则表达式。
现场演示: https://jsfiddle.net/jimmyadaro/tykuehxa/
请注意 January selected
中的option
值。这是动态的(我从数据库中获取信息)。
问题:我需要select才能在加载文档(或正文)时应用该正则表达式。不仅仅是select
更改。
<select name="" id="date_filter">
<option value="0">All months</option>
<option value="01/2017" selected>January 2017</option>
<option value="02/2017">February 2017</option>
<option value="03/2017">March 2017</option>
</select>
<div class="date">
<p>19/01/2017 17:39</p>
</div>
<div class="date">
<p>19/02/2017 17:36</p>
</div>
<div class="date">
<p>18/01/2017 20:40</p>
</div>
<div class="date">
<p>18/02/2017 13:31</p>
</div>
<div class="date">
<p>18/03/2017 13:17</p>
</div>
<div class="date">
<p>18/03/2017 13:15</p>
</div>
$("#date_filter").on('load change', function() {
var month = $(this).find(":selected").val();
console.log("month: "+month);
var pattern = new RegExp(month, "i");
$('body').find('.date').each(function() {
if (($(this).children('p').text().search(pattern) <= 0)) {
$(this).hide();
}
if (($(this).children('p').text().search(pattern) >= 0)) {
$(this).show();
}
if (month === "0") {
$(this).find('.date').show();
}
});
});
答案 0 :(得分:1)
在定义事件后触发事件。使用.trigger()
或.change()
:
$("#date_filter").on('change', function() {
//rest code here
}).change();
<强> Working Demo 强>
答案 1 :(得分:0)
你可以在一个函数中包装事件监听器,并在页面加载时调用它:
filter_input(INPUT_POST, "description", FILTER_SANITIZE_STRING);