如何精准获取NTP对应的div元素?f-field数量可变场景
精准获取NTP对应div元素的方案
由于你之前依赖固定索引的方法会因f-field数量变化失效,推荐通过属性选择器定位,完全不受兄弟元素数量影响:
直接通过ng-if属性定位
目标div的ng-if属性值是$ctrl.timeMode === 'ntp',这是它的专属标识,用这个属性匹配即可:// 转义双引号写法 document.querySelector("#system-time-dlg section div[ng-if='$ctrl.timeMode === \"ntp\"']") // 或用单引号包裹属性值 document.querySelector('#system-time-dlg section div[ng-if="$ctrl.timeMode === \'ntp\'"]')结合类名增强精准性
如果页面存在其他带相同ng-if属性的元素,可以加上ng-scope类名进一步缩小范围:document.querySelector("#system-time-dlg section div.ng-scope[ng-if='$ctrl.timeMode === \"ntp\"']")
这个方法的核心是利用元素的专属属性(而非位置索引)定位,只要NTP模式下该div存在,就能精准获取,彻底解决f-field数量变化带来的问题。
内容的提问来源于stack exchange,提问作者maria
相关产品推荐
相关产品推荐

