List 在jquery mobile中动态创建列表时如何创建自动列表分隔符

List 在jquery mobile中动态创建列表时如何创建自动列表分隔符,list,jquery-mobile,divider,List,Jquery Mobile,Divider,我已经动态创建了一个消息列表。我有一个标签,我在里面动态生成一个列表。但是,我不知道如何添加列表分隔符。在js中是否有一个刷新方法,我可以调用该方法,在我有了我的列表后添加分隔符 这就是我所拥有的: <ul id="messages" data-autodividers="true" data-role="listview" data-theme="c"> //a list of <li> are dynamically generated here <

我已经动态创建了一个消息列表。我有一个
标签,我在里面动态生成一个列表。但是,我不知道如何添加列表分隔符。在js中是否有一个刷新方法,我可以调用该方法,在我有了我的列表后添加分隔符

这就是我所拥有的:

<ul id="messages" data-autodividers="true" data-role="listview" data-theme="c">

    //a list of <li> are dynamically generated here

</ul>
    //此处动态生成
  • 列表
这只会将列表分隔符附加到最顶部,我需要在
  • 标记中添加几个。 我的
  • 列表是消息。我希望能够按日期设置分隔符,这样使用起来更方便。

    我有一个JSFIDLE

    代码有点不同,但它可以工作

    假设有这样一个列表

    <ul data-role="listview" id="MessagesList" data-autodividers="true">
                    <li date="2013-03-20"><a href="#">Event 1</a></li>
                    <li date="2013-03-20"><a href="#">Event 2</a></li>
                    <li date="2013-03-19"><a href="#">Event 3</a></li>
               </ul>
    
    $( "#mylistview" ).listview({
    autodividers: true,
    autodividersSelector: function ( li ) {
        var re = /\/\d{4}\/\d{2}\/\d{2}/i;
        var out = $(this).html().match(re);
        return out;
      }
    });
    
    原创的

    来自JQM文档

    自动分频器

    可以将listview配置为自动为其项生成分隔符。这是通过向任何listview添加data autodividers=“true”属性来实现的

    默认情况下,用于创建分隔符的文本是项目文本的大写首字母。或者,可以通过编程方式在listview上设置AutoDividerSelector选项来指定分隔符文本。例如,要使用id=“mylistview”向元素添加自定义选择器,请执行以下操作:


    我还没有测试这段代码,它可能有bug,但它会给你一个尝试的想法。

    你读过JQM文档吗?是的,但是当您已经生成了一个列表,并且想要在后面添加列表分隔符时,没有这种情况。您可以在插入消息时动态添加分隔符吗?您也可以稍后添加分隔符并刷新列表$('#mylist')。listview('refresh');我正在使用一个js函数调用带有
  • 标记的html模板,我似乎无法添加分隔符,因为我需要在添加它们之前知道整个列表。如果我按照你所说的方式刷新,那么我将如何使用分隔符刷新它?
    $( "#mylistview" ).listview({
    autodividers: true,
    // the selector function is passed a <li> element from the listview;
    // it should return the appropriate divider text for that <li>
    // element as a string
    autodividersSelector: function ( li ) {
    var out = /* generate a string based on the content of li */;
    return out;
    }
    });
    
    $( "#mylistview" ).listview({
    autodividers: true,
    autodividersSelector: function ( li ) {
        var re = /\/\d{4}\/\d{2}\/\d{2}/i;
        var out = $(this).html().match(re);
        return out;
      }
    });