【发布时间】:2018-07-31 10:58:57
【问题描述】:
我已经有一段时间没有编码了,所以我现在有点不知所措。
情况
我正在我的网站上使用数据库中的数据填充一个表(或者更确切地说是一个网格)。下面是代码的结构:
#table {
display: grid;
}
<div id="table">
<div class="container" id="1340firstitem">
<text class="channel-pop"> 100,022 </text>
<text class="channel" > @1340firstitem </text>
<text class="hashtag-pop"> 1,100 </text>
</div>
<div class="container" id="second_item">
<text class="channel-pop"> 555 </text>
<text class="channel" > @second_item </text>
<text class="hashtag-pop"> 49 </text>
</div>
<div class="container" id="3rd.item">
<text class="channel-pop"> 100,022 </text>
<text class="channel" > @3rd.item </text>
<text class="hashtag-pop"> 49 </text>
</div>
</div>
信息在页面上的显示方式如下:
______C1____|________C2________|____C3______
100,022 | @1340firstitem | 1,100
555 | @second_item | 49
100,022 | @3rd.item | 49
C2 或 class="channel" 元素的内容总是唯一,有时class="channel-pop" 和class="hashtag-pop" 元素的内容将是相同的。
目标
我希望能够根据class="channel"(AZ 和 ZA)的值按字母顺序对网格中的数据进行排序和重新排序,并根据class="channel-pop" 和class="hashtag-pop"(0 -1 和 1-0)。但是,我对如何去做这件事感到头疼。
最终数据库会变得非常密集,因此我需要尽可能高效地执行此操作——不要循环遍历嵌套数组或在循环内循环内使用循环...
方法
由于C1 和C3 中的数据并不总是唯一的,我知道我需要将子元素或其内容映射到父container,这可以使用data- 属性来完成,对象JS中,地图对象等
我对地图对象并不完全熟悉,所以目前,当页面加载时,我正在向父容器添加data- 属性,如下所示:
<div class="container" id="1340firstitem"
data-channel-pop="100,022"
data-hashtag-pop="1,100"
>
<text class="channel-pop"> 100,022 </text>
<text class="channel" > @1340firstitem </text>
<text class="hashtag-pop"> 1,100 </text>
</div>
当然,当我遍历container 类并创建这些data- 属性的数组时,data- 的值再次与父元素解除关联。
我有一段时间没有编码了,所以我现在正努力解决这个问题。任何帮助将不胜感激。
【问题讨论】:
-
有无数种方法可以做到这一点,而且您似乎没有遇到任何问题,因为您还没有做到那么远。我认为您需要的是教程,而不是问答。
-
@powerbuoy 其实按照HTML5规范,你可以自己创建元素。例如:developer.mozilla.org/en-US/docs/Web/Web_Components/…
-
@Anthony 我创建了一支可以进行简单排序的笔。它没有正确排序数字。也许这是一个开始。 codepen.io/Rechousa/pen/vdjELr
-
已更新,抱歉,我忘记链接了 :)
-
Pen codepen.io/Rechousa/pen/vdjELr 更新为纯 JavaScript。希望对您有所帮助。
标签: javascript html mysql sorting