首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >AngularJS的getAttribute值

AngularJS的getAttribute值
EN

Stack Overflow用户
提问于 2015-07-10 15:24:12
回答 1查看 16K关注 0票数 3

我有下面的控制器...我试图从一个HTML输入中获取namerating属性,但得到了错误TypeError: angular.element(...).getAttribute is not a function

代码语言:javascript
复制
app.controller('courseReview', function ($scope, $http) {

  $scope.rateThis = function rateThis(el){
    var elName = angular.element(el).getAttribute('name');
    var rating = angular.element(el).getAttribute('rating');
    document.getElementById(elName+'Rating').value = rating;
  }
});

HTML

代码语言:javascript
复制
<div ng-controller="courseReview">
  <!-- radio input -->
  <input class="star-5" id="wstar-5" rating="5" type="radio" name="welcome" ng-click="rateThis(this)"/>
</div>

有没有其他方法可以做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-10 15:27:06

根据文档"https://docs.angularjs.org/api/ng/function/angular.element",要获取元素的属性,您需要使用

代码语言:javascript
复制
.attr('name');

代替

代码语言:javascript
复制
.getAttribute('name');

重要

您在html中传递this,这里this不会将DOM元素传递给函数,而是引用作用域。要传递当前元素,请传递$event

HTML更改

ng-click="rateThis(this)"ng-click="rateThis($event)"

JS变更

代码语言:javascript
复制
$scope.rateThis = function rateThis($event){
    var elName = angular.element($event.target).attr('name');
    var rating = angular.element($event.target).attr('rating');
    document.getElementById(elName+'Rating').value = rating;
}

供参考- http://plnkr.co/edit/ZQlEG33VvE72dOvqwnpy?p=preview

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31334869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档