0
我有一个输入字段用于与数据属性进行比较。我想用regex
将用户输入与keyup
上的数据属性进行比较。使用jQuery将动态文本输入值与数据属性进行比较
HTML
<input type="text" class="form-control" id="text-filter" placeholder="Search by Name">
<div class="row">
<div class="col-sm-4 item" data-name="Clark Kent">
<div class="mbs-item-inner">
/* Content Goes Here */
</div>
</div>
<div class="col-sm-4 item" data-name="Peter Parker">
<div class="mbs-item-inner">
/* Content Goes Here */
</div>
</div>
<div class="col-sm-4 item" data-name="Bruce Wayne">
<div class="mbs-item-inner">
/* Content Goes Here */
</div>
</div>
</div>
jQuery的
$('#text-filter').on('keyup', function(){
var $this = $(this),
text_filter_value = $this.val().toLowerCase();
$('.item').each(function(index, element) {
var name = $(this).data('name').toLowerCase();
/* This only displays an .item when there is an exact match
* but I want every item that contains similar pattern matches to be displayed
*
* In other words if a user starts typing 'Pe'
* then I want the 'data-name="Peter Parker" .item to be displayed
* I'm assuming I need to use regex for this but I'm unsure as,
* how I should implement it
*/
if(text_filter_value === name) {
$(this).show('slow');
} else if(text_filter_value === '') {
// If text input is empty show all
$(this).show('slow');
} else {
$(this).hide('slow');
}
});
});
任何帮助,将不胜感激,如果可能,请包括工作代码示例。
辉煌!非常感谢你提供了一个很好的解决方案......显然,我正在解决问题。干杯 – Corey