提问者:小点点

根据不升序或降序的列值重新排序表行


最上面的按钮就是我要做的。 基本上,它们就像价格段,通过按下表,应该根据所选值重新排列表中的行。 因此,如果选择1500-2000,那么该段中的每个用户都应该是表中的第一个。

下面是我的html标记。

<form action="" id="segments">
    <input type="radio" id="0-level" name="level" value="менее €500">
    <label for="0-level">less than €500</label>

    <input type="radio" id="1-level" name="level" value="€500 - €1000">
    <label for="1-level">€500 - €1000</label>

    <input type="radio" id="2-level" name="level" value="€1000 - €1500">
    <label for="2-level">€1000 - €1500</label>

    <input type="radio" id="3-level" name="level" value="€1500 - €2000">
    <label for="3-level">€1500 - €2000</label>

    <input type="radio" id="4-level" name="level" value="€2000 - €2500">
    <label for="4-level">€2000 - €2500</label>

    <input type="radio" id="5-level" name="level" value="более €2500">
    <label for="5-level">more than €2500</label>

  </form>
<table class="sortable">
    <thead>
        <tr><th>Name</th>
        <th>Email</th>
        <th>Money spend</th>
        <th>Last login</th>
        <th>Send Newsletter</th>
    </tr>
  </thead>
    <tbody>
      <tr data-segment-level="2" class="subscribed">
        <td>jack bishop</td><td>abc@site.com</td>
        <td>€1,189.38</td><td>08/06/2020   </td>
        <td>
          <input type="checkbox" class="emailstosend" name="emailstosend" value="abc@site.com">
        </td>
       </tr>
       <tr data-segment-level="5" class="subscribed">
         <td>Jack Mimo</td>
         <td>email@site.com</td>
         <td>€15,345.78</td>
         <td>05/06/2020   </td>
         <td>
           <input type="checkbox" class="emailstosend" name="emailstosend" value="email@site.com">
         </td>
       </tr>
    </tbody>
</table>

我向每一行添加了data-segmnent-level属性,其值取决于该行/用户花费的钱。 它们与顶部以0开始,以5结束的单选按钮相对应。

任何帮助都是非常感激的,因为我完全被困住了!


共1个答案

匿名用户

好的,您必须使用javascript或jquery,我将向您展示一个通用的解决方案

将app.js文件链接到HTML文件,而不是将数据静态地放在HTML中,而是将其放在js对象中,如下所示:

users = [
    {name:'Jack Bishop', email:'ex@ex.com', MonySpent:'1300'}
    ...
]

对于页面的初始打开,您可以只插入HTML而不对表进行任何排序,当用户单击任何按钮时,您必须调用一个函数,该函数将1-清空表2-用请求的排列对用户数组进行排序3-将排序后的用户数组插入表

您可以将HTML注入到表中,如下所示:

('.sortable tbody').append(
     '<tr data-segment-level="5" class="subscribed">' +
     '<td>' + users[counter].name + '</td>' +
     '<td>' + users[counter].email + '</td>' +
     ...
     '</tr>'  
)