如何通过类、id、选择器和属性获取 DOM 元素

Posted

技术标签:

【中文标题】如何通过类、id、选择器和属性获取 DOM 元素【英文标题】:How to get DOM elements by class, id, selectors and properties 【发布时间】:2017-04-07 03:49:25 【问题描述】:

如何按类、id、选择器 (div > .my-i) 和 jQuery 中的属性获取 DOM 元素?

例如:

<div class="myClass" style="width:200px">
<span id="pop">test</span>
<div>
  <i>aaa</i>
  <i class="my-i">bbb</i>
  <i class="my-i">ccc</i>
</div>

我需要得到:

    按类取值 200px 按 id 显示文本“测试” 全部来自 class="my-i"

最好的方法是什么?

【问题讨论】:

@jonrsharpe,没关系,需要获取那些数据并传输到DB:200px,'test'并通过class="my-i"解析这些html对象 为什么需要它们?这似乎是使用 Angular 的完全错误的方式。您能否提供一些背景信息来避免 XY 问题? xyproblem.info @xyproblem.info,我在上面输入了 “这不可能吗?” 没有提供更多上下文。 【参考方案1】:
constructor(private elRef:ElementRef) 

ngAfterViewInit() 
  this.elRef.nativeElement.querySelector('.myClass');

这不适用于 Web Workers 或 Universal,但 Angular2 本身不提供与平台无关的元素来查询元素。

另见angular 2 / typescript : get hold of an element in the template

【讨论】:

@ViewChild() 不支持 CSS 选择器,仅支持模板变量名称或指令/组件类型。 有人知道如何按照 OP 的要求通过 CSS 选择器获取 DOM 元素吗?如上所述,@ViewChildelement.nativeElement 不适用于这种情况。 @atconway 有什么问题。我的代码展示了如何使用 CSS 选择器。 “这种情况”是什么意思? Angular 本身不提供任何东西。如果你想使用 CSS 选择器,你必须使用 ´nativeElement` 或 window

以上是关于如何通过类、id、选择器和属性获取 DOM 元素的主要内容,如果未能解决你的问题,请参考以下文章

如何获取html元素id,通过angularjs

使用Google闭包,通过类和id选择器获取DOM元素

创建和删除DOM元素

css中如何获取dom元素

web前端入门到实战:常见CSS3选择器和文本字体样式汇总

jQuery 选择器