Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery通过数据属性创建选项,无需重复_Jquery_Html - Fatal编程技术网

使用jquery通过数据属性创建选项,无需重复

使用jquery通过数据属性创建选项,无需重复,jquery,html,Jquery,Html,各位晚上好。 好的,我有这个和一些数据属性,比如 <li class="mix evento" data-mes="jan"> 但我不知道如何将它们fech到一个数组中,以及如何确保它们在发生多次时不会重复。非常感谢您的帮助 编辑:此处的工作代码单击“ordenar”旁边的白色按钮以测试排序功能。下面的注释解释了所有行 // gets all `data-mes` into an array var months = $('#ulID li'

各位晚上好。
好的,我有这个
  • 和一些
    数据属性,比如

    <li class="mix evento" data-mes="jan">
    
    但我不知道如何将它们fech到一个数组中,以及如何确保它们在发生多次时不会重复。非常感谢您的帮助

    编辑:此处的工作代码单击“ordenar”旁边的白色按钮以测试排序功能

    。下面的注释解释了所有行

    // gets all `data-mes` into an array
    var months = $('#ulID li').map(function() { return $(this).data('mes'); }).get();
    // remove repeated meses
    months = months.filter(function(e, p) { return months.indexOf(e) == p; });
    
    // sorts the months
    var order = ['jan','fev','mar','abr','mai','jun','jul','ago','set','out','nov','dez'];
    orderedMonths = months.sort(function(a,b){ return order.indexOf(a) - order.indexOf(b); });
    
    // add them, ordered, to the <select> with id #selectMes
    $.each(orderedMonths, function(_, v) {
        $('#selectMes').append($('<option>').val(v).text(v));
    });
    
    //将所有“数据mes”放入一个数组中
    var months=$('ulID li').map(函数(){return$(this.data('mes');}).get();
    //去除重复的肠系膜
    months=months.filter(函数(e,p){return months.indexOf(e)==p;});
    //对月份进行排序
    风险值顺序=['1月','fev','mar','abr','mai','jun','ago','set','out','nov','dez'];
    orderedMonths=months.sort(函数(a,b){returnorder.indexOf(a)-order.indexOf(b);});
    //将它们按顺序添加到id为#selectMes的
    $.each(orderedMonths,function(v,v){
    $('#selectMes')。追加($('').val(v).text(v));
    });
    
    。下面的注释解释了所有行

    // gets all `data-mes` into an array
    var months = $('#ulID li').map(function() { return $(this).data('mes'); }).get();
    // remove repeated meses
    months = months.filter(function(e, p) { return months.indexOf(e) == p; });
    
    // sorts the months
    var order = ['jan','fev','mar','abr','mai','jun','jul','ago','set','out','nov','dez'];
    orderedMonths = months.sort(function(a,b){ return order.indexOf(a) - order.indexOf(b); });
    
    // add them, ordered, to the <select> with id #selectMes
    $.each(orderedMonths, function(_, v) {
        $('#selectMes').append($('<option>').val(v).text(v));
    });
    
    //将所有“数据mes”放入一个数组中
    var months=$('ulID li').map(函数(){return$(this.data('mes');}).get();
    //去除重复的肠系膜
    months=months.filter(函数(e,p){return months.indexOf(e)==p;});
    //对月份进行排序
    风险值顺序=['1月','fev','mar','abr','mai','jun','ago','set','out','nov','dez'];
    orderedMonths=months.sort(函数(a,b){returnorder.indexOf(a)-order.indexOf(b);});
    //将它们按顺序添加到id为#selectMes的
    $.each(orderedMonths,function(v,v){
    $('#selectMes')。追加($('').val(v).text(v));
    });
    
    您可以使用以下内容:

    <ul id="ulID">
        <li class="mix evento" data-mes="jan">Jan</li>
        <li class="mix evento" data-mes="feb">Feb</li>
        <!-- etc... -->
    </ul>
    <select></select>
    
    
    
  • jan
  • 二月
    JS:

    var-months=[],$select=$('select');
    $('#ulID li')。每个(函数(){
    var mes=$(this.data('mes');
    如果($.inArray(mes,月)=-1){
    月。推送(mes);
    $select.append(“”+mes+“”);
    }
    });
    
    这将遍历所有
    li
    s并检查它们的
    数据mes
    属性。每次出现新值时,它都会添加到
    months
    数组中。每个值都会根据此数组进行检查,以确保相同的值不会被处理两次

    如果该值是唯一的,则会在“选择”菜单中添加一个额外选项


    它在这里工作:

    您可以使用如下内容:

    <ul id="ulID">
        <li class="mix evento" data-mes="jan">Jan</li>
        <li class="mix evento" data-mes="feb">Feb</li>
        <!-- etc... -->
    </ul>
    <select></select>
    
    
    
  • jan
  • 二月
    JS:

    var-months=[],$select=$('select');
    $('#ulID li')。每个(函数(){
    var mes=$(this.data('mes');
    如果($.inArray(mes,月)=-1){
    月。推送(mes);
    $select.append(“”+mes+“”);
    }
    });
    
    这将遍历所有
    li
    s并检查它们的
    数据mes
    属性。每次出现新值时,它都会添加到
    months
    数组中。每个值都会根据此数组进行检查,以确保相同的值不会被处理两次

    如果该值是唯一的,则会在“选择”菜单中添加一个额外选项


    它在这里工作:

    .unique()
    只在dom元素数组上工作-从文档
    中,对dom元素数组进行排序,并删除重复项。请注意,这只适用于DOM元素数组,而不适用于字符串或数字。
    Hey,@acdcjunior,如何将months.sort()函数更改为按数字排序?瓦鲁·马诺·尔希,在那里!什么号码<代码>数据mes
    是数字吗?嗯,不D
    .unique()
    仅适用于dom元素数组-从文档
    中对dom元素数组进行排序,并删除重复项。请注意,这只适用于DOM元素数组,而不适用于字符串或数字。
    Hey,@acdcjunior,如何将months.sort()函数更改为按数字排序?瓦鲁·马诺·尔希,在那里!什么号码<代码>数据mes是数字吗?嗯,不D