我如何在jquery中对数据属性进行排序?

时间:2018-04-28 10:52:08

标签: jquery

我正在尝试使用jquery根据数据属性对人,颜色和意见进行排序。

我想从每个人那里得到什么信息

人|颜色|看来

所以预期的结果就是这样。

詹姆斯|蓝色|看起来不错

Rebecka |黑色|看起来很糟糕

    let firstPerson = $('ul').first().data('person');
    let lastPerson = $('ul:last').data('person');
    let firstPersonColors = $().children('li').attr('color_opinion');
    
    let test = $("ul").find(`[data-person='${lastPerson}']`);
    
    console.log(test);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
    <ul data-person="James">
    <li data-color_opinion="blue">Looks good</li>
    <li data-color_opinion="green">Looks ok</li> 
    </ul>

    <ul data-person="Rebecka">
    <li data-color_opinion="blue">Looks bad</li> 
    <li data-color_opinion="black">Looks very bad</li>
    </ul> 

    </div>

1 个答案:

答案 0 :(得分:2)

您可以使用jQuery Every方法迭代这两个列表,然后迭代它们的子节点。 如果需要表,可以将结果附加到html表。

    $.each($('ul'), function(i, el){

       $.each($(el).find("[data-color_opinion]"), function(j, child){

          console.log($(el).data('person'), "|", $(child).data('color_opinion'), "|", $(child).text())
       });

    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
    <ul data-person="James">
    <li data-color_opinion="blue">Looks good</li>
    <li data-color_opinion="green">Looks ok</li> 
    </ul>

    <ul data-person="Rebecka">
    <li data-color_opinion="blue">Looks bad</li> 
    <li data-color_opinion="black">Looks very bad</li>
    </ul> 

    </div>