我正在尝试使用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>
答案 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>