我想在基于id的元素中找到一个元素。我该怎么做呢?我知道有
angular.element(document.queryselector("#id"));用于选择元素。但是在AngularJS中查找元素内部的元素又如何呢?
<div id="outerID1">
<div id="innerID">I am an inside element</div>
</div>
<div id="outerID2">
<div id="innerID">I am an inside element</div>
</div>
<div id="outerID3">
<div id="innerID">I am an inside element</div>
</div>要在jQuery中找到它,
var innerElement = $("#outerID2").find("#innerID");假设我是动态生成多个div的.Which,外部div的id是不同的,因为所有div的和内部id div是相同的。在这种情况下,我们如何解决这个问题?
发布于 2016-12-02 13:38:47
如果您的应用程序中加载了jQuery,请使用angular.element('#outerID2 #innerID')。否则,请使用angular.element(document.querySelector('#outerID2 #innerID'))
根据下面来自angular的文档,angular.element是jQuery的轻量级版本,它具有jQuery中常用的功能子集。对于您来说,通过元素ids获取元素就足够了。
模块ng中的HTML angular.element函数将原始的DOM元素或
字符串包装为jQuery元素。
如果jQuery可用,则angular.element是jQuery函数的别名。如果jQuery不可用,angular.element将委托给Angular的jQuery内置子集,称为"jQuery lite“或jqLite。
jqLite是jQuery的一个很小的、与API兼容的子集,它允许Angular以跨浏览器兼容的方式操作DOM。jqLite只实现了最常用的功能,目标是占用很小的空间。
要使用jQuery,只需确保它在angular.js文件之前加载。还可以使用ngJq指令指定应在jQuery上使用jqlite,或者如果页面上存在多个版本,则使用特定版本的jQuery。
发布于 2016-12-01 21:03:28
来自angular.element上的文档
find() -仅限于按标记名查找
您确实可以访问children()、contents()和data()实现,因此您通常可以找到一种绕过它的方法。
编辑
你可以试试这样的东西
var parentElement = angular.element( document.querySelector( '#'+parentId ) ).children();
for(var i=0;i<parentElement.length;i++){
if(parentElement[i].id === childId)
{
alert(parentElement[i].getAttribute('name'));
}
}还演示链接here
发布于 2016-12-01 21:17:20
您可以直接执行以下操作
var now = angular.element(element.getElementsByClassId("innerID"));
alert(now);https://stackoverflow.com/questions/40911330
复制相似问题