【问题标题】:Trying to output a list of unique data-attributes (jQuery/Java)尝试输出唯一数据属性列表(jQuery/Java)
【发布时间】:2023-03-05 16:58:01
【问题描述】:

我有一个产品网格,我正在尝试通过为每个产品分配数据属性(data-category="" data-department="" data-color="" 等)来构建一个动态过滤系统。我需要输出这些数据属性中的每一个的 ul,其中包含唯一的选项(所以“小、中、大”,即使每个都有多个实例,并且某些产品可能有多个(管道分隔)属性)

例子:

<div data-category="shorts" data-size="large" data-color="blue"></div> 
<div data-category="shorts" data-size="small|medium|large" data-color="green"></div>
<div data-category="shorts" data-size="small" data-color="green|red"></div>
<div data-category="shirts" data-size="medium" data-color="blue"></div>
<div data-category="sunglasses" data-color="black"></div>

对于这些数据,我正在尝试获取三个列表,

类别:短裤、衬衫、太阳镜
尺寸:大、中、小
颜色:蓝、绿、红

并将它们粘贴到列表元素中。

【问题讨论】:

  • 这是一个理论问题吗??
  • 添加一个例子,我已经构建的代码太丑了,半生不熟,我什至不想复制和粘贴它。

标签: javascript jquery custom-data-attribute


【解决方案1】:

我已经尝试过非常基本的 Appprocah,但它会帮助你理解

HTML

<div data-category="shorts" data-size="large" data-color="blue"></div> 
<div data-category="shorts" data-size="large" data-color="green"></div>
<div data-category="shorts" data-size="small" data-color="red"></div>
<div data-category="shirts" data-size="medium" data-color="blue"></div>
<div data-category="sunglasses" data-color="black"></div>

jQuery

$(function(){
     var output =[];
     var $cat =[]; 
     var $size = [];
     var $color =[];
    $('div').map(function (i){
        
        if( typeof $(this).data('category') == 'string') 
            $cat[i] = $(this).data('category')
        if( typeof $(this).data('size') == 'string') 
            $size[i] = $(this).data('size')
        if( typeof $(this).data('color') == 'string') 
        $color[i] = $(this).data('color');

    });
    output.push($.unique($cat),$.unique($size),$.unique($color));
    console.log(output); //or use alert(output)

})

DEMO

函数参考

$.map

$.unique

$.data

【讨论】:

  • 谢谢,这对我帮助很大。对于延迟接受您的回答,我们深表歉意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 2015-10-31
  • 1970-01-01
相关资源
最近更新 更多