Angular.element选择器,但有一些例外

时间:2018-01-23 12:53:02

标签: angularjs jqlite

我有这个简单的结构:

<div class="outer-div">
    <div class="inner-div-1">inner div 1</div>
    <div class="inner-div-2">inner div 2</div>
    <div class="inner-div-3">inner div 3</div>
    <div class="inner-div-4">inner div 4</div>
  </div>

尝试选择所有内部div而不是第二个。使用angular.element('div', '.outer-div')将选择每个div。我只需要选择第1,第3和第4。有没有一种简单的方法可以做到这一点,最好使用一个angular.element?

以下是一个示例:https://codepen.io/neptune01/pen/ppBrKY?editors=1111

1 个答案:

答案 0 :(得分:1)

你可以考虑下面这样的东西,但它非常不鼓励从角度控制器进行DOM操作。我建议为它创建指令。

var childs = angular.element('.outer-div').children();
colorElementExclude([1], childs);

function colorElementExclude(excludedElement, childrens){
  //add exclude class on element to be excluded
  excludedElement.forEach(function(el) {
    childrens.eq(el).addClass('exclude');
  });
  childrens.not(".exclude").css({ 'color': 'grey' });
}

Forked Codepen