在ng-repeat angularjs中获取html元素

时间:2014-10-13 16:39:47

标签: javascript jquery angularjs

我需要得到在ng repeat中创建的dom元素我有这个代码,我不明白为什么我不能得到这个元素。

<div></div>
<ul>
      <li ng-repeat="data in data"">
        {{data}}
      </li>
    </ul>
    <script>
      var thirdListItem = $('ul').find('li').first().text();
        $('div').html(thirdListItem);
    </script>

这里是plunker http://plnkr.co/edit/91S2esBo0uHzQHyEBuvj?p=preview

2 个答案:

答案 0 :(得分:2)

一起使用AngularJS和jQuery不是一个好主意。顺便说一下,试试这个快速而又肮脏的解决方案:

  $(function(){
      var thirdListItem = $('ul').find('li').first().text();
      $('div').html(thirdListItem);
  });

http://plnkr.co/edit/HDvZwPp1rFeoxVYb0qGd?p=preview

正如有人已经说过的,最佳做法是创建一个custom directive

答案 1 :(得分:1)

对于您的特定情况,请尝试以下解决方案: 它使用ng-init将列表项的索引值传递给一个函数,该函数使用该索引使用jQuery返回DOM元素。输出是控制台。

http://plnkr.co/edit/XJnBzIyQoSJf9YKE0953?p=preview

  <ul>
    <li ng-repeat="data in data" ng-init="find($index +1)">
      {{data}}
    </li>
  </ul>

$scope.find = function(i){
       $ele= $('li:nth-child(' + i +')');
       console.log($ele);
  }