我需要得到在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
答案 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);
}