javascript - 根据数据对 div 进行排序

标签 javascript html angularjs

我正在创建一个基于 html angularjs 的网络应用程序

我有两个 div

第 1 部分

<div class="box1" style="margin-top:20px;"> 
    <span ng-repeat="i in data" style="font-size:14px; font-weight:normal">{{i.div1}}</span>
</div> 

分区2

<div class="box1" style="margin-top:20px;"> 
    <span ng-repeat="i in data2" style="font-size:14px; font-weight:normal">{{i.div2}}</span>
</div> 

在我的 Controller 中

i.div1 is 20

i.div2 is 50

现在我有一个下拉列表

<select>
    <option>more</option>
    <option>less</option>
</select>

如果用户点击 more,则 div 2 应显示在 div 1 上方,如果用户点击 less,div 1 应显示在 div 2 上方,

我需要做什么

最佳答案

听起来您的更多/更少选择不需要从服务器中提取任何内容,它只需要对页面上已有的内容重新排序,对吧?这意味着它不需要与 Angular 有任何关系,只需一个非常简单的 jQuery 客户端事件就可以解决问题:

您需要一种方法来轻松识别这两个 div 和选择的客户端。我给了他们 id 的 div1、div2、moreLessSelect。

<script>
$(function(){
  $("select#moreLessSelect").on("change",function(e){
    if ($(this).val() == 'more')
    {
        $("#div1").before($("#div2"));
    }
    else
    {
        $("#div2").before($("#div1"));  
    }
  });
});
</script>


<select id="moreLessSelect">
  <option value="more">More</option>
  <option value="less">Less</option>
</select>
<div class="box1" id="div1">angular div 1 contents go here</div>
<div class="box2" id="div2">angular div 2 contents go here</div>

(如果您将 div 放入可识别的包装器中,并使用 jQuery 前置或附加函数将所需的 div 移动到顶部或底部,这将更加面向 future - 嗯,有很多好的方法可以做到这一点)。

关于javascript - 根据数据对 div 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41522464/

相关文章:

javascript - 使用 for in 循环关闭对象填充下拉列表

javascript - 当我点击一个链接时,它必须显示 "some loading animation"直到加载另一个页面,该怎么做?

javascript - 函数 sum 无法正常工作 javascript

javascript - 简单的 JavaScript 正则表达式

javascript - 将元素宽度设置为其内部的图像

javascript - 使用 Greasemonkey 获取选定的表内容

php - 带有 2 个 <td> 的表中的样式 1 <td>

javascript - 能够访问服务返回的对象,但访问其属性给出未定义

c# - 如何从 Webapi 将 URL 传递到 <img> 标记以接受 base64 图像?

angularjs - Bootstrap 3 是否有一个与 AngularJS 配合良好的日期选择器?