2016-12-01 62 views
0

我想根据编号找到元素内的元素。我该怎么做 ?我知道有angularjs - 通过编号查找元素内的元素

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"); 

这样想我dynamivacally生成多个div的。其中有外层div id是所有div的和内部的id div的是相同的不同。在这种情况下,我们如何解决这个问题?

+1

由于ID是唯一的,那么你可以直接使用给定的ID。 – Jai

+1

该ID必须是唯一的。没有必要通过元素内的ID来查找元素。例如angular.element(document.queryselector(“#innerID”));应该够了。 –

回答

1

从文档上angular.element

发现() - 通过标签名称仅限于查询

您有机会获得儿童(),内容()和数据()实现,所以你通常可以找到解决办法。

编辑

你可以尝试这样的

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

+0

你能帮我一个例子代码? –

+0

我编辑了我的帖子 –

0

您可以直接做

var now = angular.element(element.getElementsByClassId("innerID")); 
alert(now); 
+0

没有想到像我有外部身份证不同的所有div和内部身份证是独特的手段,我们如何可以得到这个? –

0

使用angular.element('#outerID2 #innerID'),如果您有jQuery的装东西在你的 应用程序。 否则,使用angular.element(document.querySelector('#outerID2 #innerID'))

根据从下方角的DOC,angular.element是jQuery的的光版本,其具有的常用于jQuery的使用的功能的子集。出于你的目的,它应该足以让他们的ID获得元素。

angular.element - 模块ng中的函数将原始DOM元素或HTML字符串包装为jQuery元素。

如果jQuery可用,angular.element是jQuery 函数的别名。如果jQuery不可用,angular.element将委托给 Angular的jQuery的内置子集,名为“jQuery lite”或jqLit​​e。

jqLit​​e的jQuery是一个微小的,API兼容子集,允许角 操纵的跨浏览器兼容的方式DOM。 jqLit​​e 只实现了目标为 的占用空间非常小的最常用功能。

使用jQuery,只需确保它的angular.js文件之前加载。 您还可以使用ngJq指令指定jqlite应该是使用了jQuery的 ,或者页面上存在多个版本的 使用jQuery的特定版本。

+0

在您发布信息时,请为未来的读者添加详细信息,以了解您提出的更改。 – nullpointer