2016-12-01 4 views
0

Я хотел бы найти элемент внутри элемента на основе id. Как мне это сделать ? Я знаю, естьangularjs - найти элемент внутри элемента по 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"); 

Подумайте, как я dynamivacally генерации .which множественного DIV имеет внешний Див идентификатор отличается для всех Див-х и внутреннего идентификатора DIV являются одинаковыми. В этом случае мы можем решить это?

+1

Поскольку идентификаторы уникальны, вы можете напрямую использовать данный идентификатор. – Jai

+1

Идентификатор должен быть уникальным. Нет необходимости находить элемент по идентификатору внутри элемента. Например, угловой.элемент (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

НЕТ, предположите, думаю, что у меня есть внешний id id для всех div, а внутренний ID - уникальные средства, Как мы можем это получить? –

0

использование angular.element('#outerID2 #innerID') если у вас есть JQuery загружены в вашей приложение. В противном случае используйте angular.element(document.querySelector('#outerID2 #innerID'))

В соответствии с документом, угловым ниже, угловым элементом является легкая версия jQuery, которая имеет подмножество функций, которые обычно используются в jQuery. Для вашей цели должно быть достаточно получить элемент по их идентификаторам.

angular.element - функция в модуле нг Обертка исходного DOM элемент или строку HTML в качестве элемента JQuery.

Если jQuery доступен, угловой.элемент является псевдонимом функции jQuery . Если jQuery недоступен, угловой.элемент делегирует Угловое встроенное подмножество jQuery, называемое «jQuery lite» или jqLite.

jqLite - это крошечное API-совместимое подмножество jQuery, которое позволяет Angular манипулировать DOM кросс-браузерным способом. jqLite реализует только наиболее часто используемые функции с целью иметь очень малую площадь.

Чтобы использовать jQuery, просто убедитесь, что он загружен перед файлом angular.js. Вы также можете использовать директиву ngJq, чтобы указать, что jqlite должен быть , используемый для jQuery, или использовать определенную версию jQuery, если на странице существует несколько версий .

+0

Как вы публикуете, пожалуйста, добавьте подробности для будущих читателей, чтобы понять предложенное вами изменение. – nullpointer