按项目和分隔符筛选Listview

按项目和分隔符筛选Listview,listview,jquery-mobile,filtering,divider,Listview,Jquery Mobile,Filtering,Divider,在jQueryMobile中,我编写了一个data role=“listview”组件,我想过滤数据,包括它的分隔符。也就是说,当用户输入一些文本进行搜索时,它可能对应于特定项目或分隔符。在最后一种情况下,必须显示整个分隔符及其子项。问题是默认的过滤机制是分割器,我不知道如何正确地重新定义filterCallback函数 有人知道如何做到这一点吗 我尝试的代码是 提前谢谢。我有件事: JS CSS HTML aaaa bbbbbb cccc 为了包含与除法器文本匹配的结

在jQueryMobile中,我编写了一个
data role=“listview”
组件,我想过滤数据,包括它的分隔符。也就是说,当用户输入一些文本进行搜索时,它可能对应于特定项目或分隔符。在最后一种情况下,必须显示整个分隔符及其子项。问题是默认的过滤机制是分割器,我不知道如何正确地重新定义
filterCallback
函数

有人知道如何做到这一点吗

我尝试的代码是

提前谢谢。

我有件事:

JS

CSS

HTML


  • aaaa
  • bbbbbb
  • cccc

为了包含与除法器文本匹配的结果,我在每行中添加了一个包含除法器文本的隐藏p

<li>
    <a>
        <p>Item</p>
        <p style='display:none;'><?php echo $my_divider; ?></p>
    </a>
</li>
  • 项目


  • 与Phill Pafford的答案相比,在匹配不完整的除法器名称方面几乎没有改进: 更改此项:

    $("li[data-groupoptions="+searchValue.toLowerCase()+"]").addClass('override-ui-screen-hidden');
    
    为此:

    $("li[data-groupoptions*="+searchValue.toLowerCase()+"]").addClass('override-ui-screen-hidden');
    

    现在您只需键入“AA”即可匹配“AAAA”。请在此处尝试:

    您的示例对我有效,按下“b”键后,“aaaa”分隔符被移除,这是因为第二个分隔符包含包含字母“b”的元素,而不是因为分隔符文本包含该字母。尝试搜索“bbbb”。我希望在这种情况下出现分隔符。请问您为什么需要这个?分隔符用于分组,不显示结果。这是一个开始:不完全工作,但可能会给你一个想法。事实是,这只是为了私人利益,但谁知道呢。。。也许“AAAA”、“BBBB”可能真的是“销售”、“营销”或其他一些人工作的部门名称:)谢谢你的近似值谢谢!我只做了一个小的更改,而不是选择符
    $(“li[data groupoptions=“+searchValue.toLowerCase()+”])
    我使用了
    $(“li[data groupoptions*=”+searchValue.toLowerCase()+”])
    ,因此在搜索其名称的一部分时,特定组也会出现。此处更新:对于一个漂亮的开箱即用的问题,更好+1。起初我不了解实际应用程序,但现在我真的很喜欢它。我看到的唯一问题是,它不是泛型的,所以它不会很好地使用BoxOutJS。哦,你可以进行正则表达式搜索,而不是计算所有小写字母!
    <li>
        <a>
            <p>Item</p>
            <p style='display:none;'><?php echo $my_divider; ?></p>
        </a>
    </li>
    
    $("li[data-groupoptions="+searchValue.toLowerCase()+"]").addClass('override-ui-screen-hidden');
    
    $("li[data-groupoptions*="+searchValue.toLowerCase()+"]").addClass('override-ui-screen-hidden');