javascript - 如何获取 li 标签内的属性值?
问题描述
我正在使用 Angular 6 应用程序,我通过属性传递数据,
首先我[attr.parent_id]
在 ul 标签中给出了,
<ul class="list-unstyled" id="1" [attr.parent_id]="123"></ul>
我用过的,console.log(target.getAttribute('parent_id'));
结果显示123
。
就像同样的事情一样,我需要从li
相同的标签中获取索引号ul
,
<ul class="list-unstyled" id="1" [attr.parent_id]="123">
<li class="media p-2 column" *ngFor="let item of items;let i = index;" [attr.child_id]="i"></li>
</ul>
在这里,我已经给出[attr.child_id]
了检索索引位置并且我使用了console.log(target.getAttribute('child_id'));
.
此获取控制台child_id
将值显示为null。
ul 标签给了我属性的值,但 li 标签返回 null 作为结果。
StackBlitz链接是https://stackblitz.com/edit/angular-oaghq3
请帮助我设置和获取 li 标签的属性并检索数据。
解决方案
您可以使用此闪电战ViewChildren
中展示的装饰器来查询元素
<ul class="list-unstyled" id="list" [attr.parent_id]="123">
<li #li class="media p-2 column" *ngFor="let item of items;let i = index;" [attr.child_id]="i"> {{item.name}} </li>
</ul>
@ViewChildren("li") listElements: QueryList<ElementRef<HTMLLIElement>>;
private printElements() {
const elements = this.listElements.toArray();
elements.forEach(element => {
const isLiElemenet = element.nativeElement instanceof HTMLLIElement;
const child_id = element.nativeElement.getAttribute('child_id');
console.log({ isLiElemenet, child_id });
})
}
推荐阅读
- memory - 如何有效地创建初始化为相同值的大型项目向量?
- ruby-on-rails - 在 Ruby on Rails 中计算具有状态的关联数
- javascript - CSS 属性无效,由 js getComputedStyle() 读取
- java - 如何移动和反对特定坐标?
- android - 如何使用 Retrofit 在 android studio 中将 JSON 数据解析为表布局
- python - 如何将请求的限制设置为笑话 JWT
- javascript - 如何根据另一个选择值有条件地加载选择选项
- c# - IDataErrorInfo 仅在属性已设置并再次清除时才有效
- firebase - 有没有办法抑制 Firebase Functions Firestore 触发器?
- optimization - Z3优化中的间隙公差控制