错误:语法错误,无法识别的表达式:[data-search-term * = 1.23.4]

时间:2016-07-11 07:45:35

标签: jquery

我有一个搜索输入字段,我在其中搜索li

中的数据元素
<li class="list_items" data-search-term="annuál plánt accidénts ">
    <div class="row">
        <div class="col-xs-2 col-md-1"></div>
        <div class="col-xs-10 col-md-11">
            <div class="item">
                <div class="item-title">Annuál Plánt Accidénts<span class="pull-right"><input type="checkbox" value="Annuál Plánt Accidénts" name="checkbox"></span></div>
            </div>
        </div>
    </div>
</li>
<li class="list_items" data-search-term="chiller output temperature ">
    <div class="row">
        <div class="col-xs-2 col-md-1"></div>
        <div class="col-xs-10 col-md-11">
            <div class="item">
                <div class="item-title">Chiller Output Temperature<span class="pull-right"><input type="checkbox" value="Chiller Output Temperature" name="checkbox"></span></div>
            </div>
        </div>
    </div>
</li>

如果我输入1.2.3.4,那么万一我无法识别&#39; jQuery中的错误。这是代码:

$('.live-search-box').on('keyup', function() {
    $("#del").show();
    var searchTerm = $(this).val().toLowerCase();
    // alert(searchTerm);
    $('.live-search-list li').each(function() {
        if ($(this).filter('[data-search-term *= ' + searchTerm + ']').length > 0 || searchTerm.length < 1) { //alert('if'); $(this).show(); } else { //alert('else'); $(this).hide(); } }); });
        });
    }
  

错误:语法错误,无法识别的表达式:[data-search-term * = 1.23.4]

1 个答案:

答案 0 :(得分:1)

首先,您的jQuery代码存在一些语法问题以及不匹配的括号和大括号。

错误是因为您需要将您提供的值包装在引号中的属性选择器中,因为它包含将被解释为类选择器的.个字符。您还可以单独使用filter()隐藏/显示相关元素而不进行循环来简化代码。试试这个:

$('.live-search-box').on('keyup', function() {
    $("#del").show();
    var searchTerm = $(this).val().toLowerCase();
    $('.live-search-list li').hide().filter('[data-search-term*="' + searchTerm + '"]').show();
});