如何在jQuery中获取/存储ng-repeat的元素

时间:2018-09-14 13:40:24

标签: javascript jquery html angularjs

div中有一个元素列表,这些元素显示为一个列表(一个在另一个下方),我想获取这些元素并在同一行上显示它们(一个在另一个附近)。

父母的样子:

<div class="table-option table-option__items">
    <div ng-repeat="option in $ctrl.configuration" class = "table-option-item">
        <div class="table-option-header">   
            {{option.name}}
        </div>
    </div>
</div>

我可以通过以下方式在控制台(以及.js文件)中访问它

var parent = $(".table-option__items")[0];

和每个孩子

var child = $(".table-option-item")[i];i是其索引。

在我的情况下,有4个孩子,因此我可以通过将i替换为0、1,2或3来访问它们。我也不知道如何获得父对象的长度。

我希望能够从父级访问所有子级,就像在父级中循环并能够对子级进行操作。将它们放在列表/数组/对象或类似对象中。

在我的特定情况下,将它们的顺序从垂直方向更改为在另一位置下方,以使它们在水平方向上彼此靠近。 有可能吗?

2 个答案:

答案 0 :(得分:0)

我假设您是angularjs的初学者,但之前使用过jQuery。 Angularjs在幕后使用jQuery(或未包含在页面中的特定子集),如果您要编写格式良好的angularjs代码,则只能在编写自定义angularjs时亲自使用jQuery { {3}}。这是有角度的设计,因此,没有DOM操作与应用程序的业务逻辑混合在一起。这是一个简单的示例,说明如何以更加有角度的方式重新调整ng-repeat循环:

angular.module("app",[])
.controller("ctrl", function($scope){
  $scope.options = [{name: "foo"}, {name: "bar"}]
})
.quux{
  display: inline-block;
}
.thing{
  margin: 5px;
  border: 2px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app" ng-controller="ctrl">
    <div class="quux" ng-repeat="option in options">
        <span class="thing">   
            {{option.name}}
        </span>
    </div>
</div>

答案 1 :(得分:0)

然后查找总长度 您可以将.length仅用于子代选择器,如下所示:

var count = $(".table-option-item").length;

如果必须使用.children(),则如下所示:

var count = $(".table-option div").children().length;
var length = $('.table-option__items').children('div').length