基于数据属性搜索元素。我有下面的代码,我想知道,如果数据属性值带有空间,如何实现这一点?
<div class="data" data-value="auto"> abcd </div>
<div class="data" data-value="simple tab,block"> acd </div>
<div class="data" data-value="auto"> abd </div>
<div class="data" data-value="block"> abcde </div>
<div class="null-data"> type the correct value </div>
<input class="search-text" name="keyword" type="text" id="search-keyword" placeholder="search">
在输入值事件时,我基本上想找出属于特定数据值的所有项?
$('#search-keyword').on( "keyup", function() {
$('.null-data').hide();
if($(this).val()) {
var input = $(this).val().toLowerCase();
$(".data").hide();
$(".data[data-value*="+ input +"]").show();
if(!$('.data:visible').get(0)){
$('.null-data').show();
}
}else{
$('.null-data').show();
}
});
我根据数据属性值获取html元素,但是如果数据属性值有空格,则不会显示html元素。
发布于 2015-01-07 23:21:03
在构建选择器时,需要将输入值包装在引号中,如其中的内容元字符:
$(".data[data-value*='"+ input +"']").show();
//-------------------^-----------^
if(!$('.data:visible').get(0)){
$('.null-data').show();
}
发布于 2015-01-07 23:22:24
您使用的语法不正确。
将您的代码替换为
$('#search-keyword').on( "keyup", function() {
$('.null-data').hide();
if($(this).val()) {
var input = $(this).val().toLowerCase();
$(".data").hide();
$(".data[data-value*="+ input +"]").show();
if(!$('.data:visible').get(0)){
$('.null-data').show();
}
}else{
$('.null-data').show();
}
});
https://stackoverflow.com/questions/27834820
复制相似问题