2015-10-10 137 views
0

我有两个跨度,点击一个跨度标记时,p标记应该显示。这是我的HTML文件:在jQuery中访问儿童使用儿童

<span class="span1" ng-click="show()">Span_1 
<p class="p1" ng-show="var1">P_1</p> 
</span> 
<span class="span1" ng-click="show()">Span_2 
<p class="p2" ng-show="var1">P_2</p> 
</span> 

和相应的jQuery是

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
    $scope.var1 = false; 
    $("span").click(function(){ 
     $(this).children().toggle(); 
    }) 
}); 

有没有孩子()标签在Angularjs呢?该Plunker是http://plnkr.co/edit/UnyqbY6lLRqhAb8183Nf?p=preview

+0

似乎是工作的罚款https://jsfiddle.net/3jmqf9r9/1/ –

+0

好的谢谢,但它不工作在蹲跳者对我来说 –

+0

[This](http://stackoverflow.com/questions/25369912/angularjs-ng-show-one-condition-with-multiple-elements)可能对你有所帮助 –

回答

2

请看看的plunker

<!DOCTYPE html> 
<html> 
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<body> 

<div ng-app="myApp" ng-controller="myCtrl"> 

<span class="span1">Span_1 
<p class="p1" style="display:none;">P_1</p></span><br> 
<span class="span1" >Span_2 
<p class="p2" style="display:none;">P_2</p></span> 

</div> 

<script> 
var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
    $("span").click(function(){ 
     console.log($(this).children()) 
     $(this).children().first().toggle(); 
    }) 
}); 
</script> 

</body> 
</html> 
+0

感谢Gaurav的回答,但是第一个()的用法是什么,我也知道为什么没有这个第一个)以前请。 –

+0

因为没有第一个它返回一个数组的孩子,并且数组没有切换方法,并且首先它返回具有togglw方法的children数组的第一个元素 –

1

为什么你不使用纯粹的Angular在这里,而不是使用jQuery。我不是100%确定你想要达到的目标,但是我想你想在你点击特定跨度时切换p元素。如果是这样,你可以使用这样的代码:

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
    $scope.showChildren1 = false; // show children of first span 
    $scope.showChildren2 = false; // show children of second span 
    $scope.toggle1 = function(){ 
     $scope.showChildren1 = !$scope.showChildren1; // toggle visibility 
    } 
    $scope.toggle2 = function(){ 
     $scope.showChildren2 = !$scope.showChildren2; // toggle visibility 
    } 
}); 

HTML:

<div ng-app="myApp" ng-controller="myCtrl"> 
    <span class="span1" ng-click="toggle1()">Span_1</span><br> 
    <p class="p1" ng-show="showChildren1">P_1</p> 
    <span class="span1" ng-click="toggle2()">Span_2</span> 
    <p class="p2" ng-show="showChildren2">P_2</p> 
</div> 

这里是updated sample

+0

我有32个span标签,里面有p标签bro所以当点击一个span标签时,它应该显示它对应的p标签,所以我一直在寻找 –