Транспортир, как получить все дочерние элементы из родительского элемента

Привет, у меня есть следующий HTML-код для переключателей. Я пытаюсь получить список дочерних элементов для родительского элемента с помощью by.model, перебирать их и выбирать переключатели. Я пробовал следующий код, но он говорит, что элемент не найден

var drilldownRadios = element(by.model('filterParameters.rptGrping')).$$("md-radio-button");

HTML-код из приложения

<md-radio-group layout = "row" ng-model = "filterParameters.rptGrping" class = "ng-pristine ng-valid _md layout-row ng-not-empty ng-touched" role = "radiogroup" tabindex = "0" aria-invalid = "false" aria-activedescendant = "radio_2722" style = "">
   <md-radio-button value = "National" id = "radio_2720" role = "radio" aria-checked = "false" aria-label = "National">
      <div class = "md-container" md-ink-ripple = "" md-ink-ripple-checkbox = "">
         <div class = "md-off"></div>
         <div class = "md-on"></div>
      </div>
      <div ng-transclude = "" class = "md-label">
         <filtertext class = "ng-scope">National</filtertext>
      </div>
   </md-radio-button>
   <!-- ngIf: !$ctrl.reportInfo.authRoleClasses.studentInfo -->
   <md-radio-button ng-if = "!$ctrl.reportInfo.authRoleClasses.studentInfo" ng-click = "$ctrl.setSelectedStates()" class = "stateRadio ng-scope md-checked" value = "State" role = "radio" tabindex = "0" id = "radio_2722" aria-checked = "true" aria-label = "California" style = "">
      <div class = "md-container" md-ink-ripple = "" md-ink-ripple-checkbox = "">
         <div class = "md-off"></div>
         <div class = "md-on"></div>
      </div>
      <div ng-transclude = "" class = "md-label">
         <filtertext class = "ng-binding ng-scope">California</filtertext>
      </div>
   </md-radio-button>
   <!-- end ngIf: !$ctrl.reportInfo.authRoleClasses.studentInfo -->
   <!-- ngIf: $ctrl.reportInfo.authRoleClasses.studentInfo -->
   <!-- ngIf: !$ctrl.reportInfo.authRoleClasses.studentInfo -->
   <md-radio-button value = "District" ng-click = "$ctrl.setSelectedStates()" ng-if = "!$ctrl.reportInfo.authRoleClasses.studentInfo" class = "ng-scope" role = "radio" tabindex = "0" id = "radio_2723" aria-checked = "false" aria-label = "California and District(s)" style = "">
      <div class = "md-container" md-ink-ripple = "" md-ink-ripple-checkbox = "">
         <div class = "md-off"></div>
         <div class = "md-on"></div>
      </div>
      <div ng-transclude = "" class = "md-label">
         <filtertext class = "ng-binding ng-scope">California and District(s)</filtertext>
      </div>
   </md-radio-button>
   <!-- end ngIf: !$ctrl.reportInfo.authRoleClasses.studentInfo -->
</md-radio-group>

вы получаете результат, запустив document.querySelector('[ng-model = "filterParameters.rptGrpin‌​g"]') в консоли вашего браузера?

Florent B. 02.05.2018 18:21

@FlorentB. Я получил результат в консоли, но он показывает только html-код для первых двух вариантов радио, National и California, когда я расширяю код

Vin 02.05.2018 18:46

@Vin "District" может отсутствовать, если оператор ng-if отфильтровывает его.

JstnPwll 02.05.2018 19:45

@JstnPwll, вы правы, есть два набора элементов с одинаковыми родительскими и дочерними именами, за исключением одного изменения в классе, затронутом ng, в одном из элементов. используя это, я могу найти элемент .ng-touched[ng-model = "filterParameters.rptGrping"] md-radio-button

Vin 02.05.2018 22:34

но я пытаюсь использовать этот var drilldownRadios = element(by.css(".ng-touched[ng-model='filterParameters.rptGr‌​ping']")).$("md-radi‌​o-button");, но когда я запускаю сценарий как drilldownRadios.count().then(function(drillcnt), я получаю .count не является функцией. Есть идеи, как это попробовать. Я хочу найти все дочерние элементы для данного родительского элемента.

Vin 02.05.2018 22:45

Вы должны использовать count() на element.all(). element(by.css(".ng-touched[ng-model='filterParameters.rptGr‌​ping']")).$$("md-rad‌​io-button").count()

yong 03.05.2018 01:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
460
1

Ответы 1

element.all возвращает массив объектов с modelfilterParameters.rptGrping

var drilldownRadios = element.all(by.model('filterParameters.rptGrping')).$$("md-radio-button"); drilldownRadios.then(function(arrayElements){ console.info(arrayElements.length); });

Другие вопросы по теме