首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在AngularJS中获取超文本标记语言元素属性?

如何在AngularJS中获取超文本标记语言元素属性?
EN

Stack Overflow用户
提问于 2015-07-17 02:09:43
回答 3查看 14.1K关注 0票数 0

编辑:每个人都走了各种各样的正题,但问题仍然存在-如何在角度控制器中获取html元素的属性?

这是一个plnkr尝试:http://plnkr.co/edit/0VMeFAMEnc0XeQWJiLHm?p=preview

代码语言:javascript
运行
复制
    //$scope.myElem = angular.element('testDiv'); //this breaks angular
    $scope.myElem = $document.find('testDiv'); //this doesn't break angular, but unclear what it returns
    $scope.myAttr = $scope.myElem.name; //this returns nothing

如果你需要让人信服这实际上是必要的-我需要找到当用户滚动一个div时,如下所示:http://jsfiddle.net/rs3prkfm/注意,这与问题无关,只是一个场景。问题很简单--如何获取属性的值?

参考文献:

无用的官方文档:https://docs.angularjs.org/api/ng/function/angular.element

唯一有用但仍然不起作用的链接:http://mlen.io/angular-js/get-element-by-id.html

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-17 02:27:38

您可以使用element api https://docs.angularjs.org/api/ng/function/angular.element

不过,你真正需要它的场合应该只有很少的几个。

票数 1
EN

Stack Overflow用户

发布于 2015-07-17 02:26:48

您应该使用指令来操作DOM。控制器应该仅操纵应用程序的数据并将其提供给html。

例如,如果您在控制器上有直接操作,则不能将多个视图绑定到控制器。另外,如果你在html中更改了一个标签的id,并且你直接在你的控制器中操作它,那么控制器就会崩溃。

请阅读以下内容:

http://ng-learn.org/2014/01/Dom-Manipulations/

希望能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2015-07-17 02:31:32

使用angular.element:

代码语言:javascript
运行
复制
var myElem = angular.element("#testDiv"); // here you get your div
var myAttr = myElem.attr("name"); // you get: "testDiv"

请记住,使用jqlite有局限性。如果您想要jquery元素的完整功能,请在导入您的angular脚本之前导入一个完整的"jquery.js“。

但是,要操作DOM,您应该使用大多数答案中所述的指令。

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

https://stackoverflow.com/questions/31461537

复制
相关文章

相似问题

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