使用角度

时间:2015-07-24 05:49:15

标签: javascript angularjs

我想获取点击的div的类名。我的下面有几个div标签。

<div id="car" class="ams-product car" data-ng-class="{ 'car-inactive ams-deactivated-product': carInactive() }" data-ng-click='getClass(); hide(); loadCarModule()'>
    <div class="ams-product-inner">
        <img class="product-img" data-ng-src="{{ carValidation()}}">
        <h3>Car</h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim</p>
        <a href="#" class="add-this-product" data-ng-class="{ 'car-inactive': carInactive() }">+</a>
    </div>
</div>

我想要类名或顶部外部div的id(div id =&#34; car&#34;)。请注意,有三个这样的div。所以我想知道点击了哪个div。

2 个答案:

答案 0 :(得分:1)

如果要检查使用ng-class应用的元素中设置的类,只需检查用于启用和禁用ng-class的变量/函数,例如

 $scope.getClass = function() {

      //if $scope.carInactive() is true then 
      //car-inactive & ams-deactivated-product classes apply to the element.

      console.log($scope.carInactive());
 };

或者您可以使用旧的JavaScript方法从单击的元素中获取类

ng-click应该像$event一样通过点击功能

...data-ng-click='getClass($event); hide(); loadCarModule()'>

 $scope.getClass = function(event) {
     console.log(event.srcElement.className);
 };

我认为你可以做的最好的方式第一个,因为在第二个中你点击外部div的子元素然后ng-click会触发,但是当你试图获得事件的目标时,它并不总是外部div,因为如果你点击h3那么目标元素是h3

答案 1 :(得分:0)

您应该在HTML文件中传递事件变量

<div (click)="onClick($event)"></div>

然后在您的打字稿文件中

您应该使用target,然后使用id,className

onClick(e: any) {
    console.log(e.target.id, e.target.className);
}