首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据Material-icons名称查找元素?

如何根据Material-icons名称查找元素?
EN

Stack Overflow用户
提问于 2018-11-05 23:59:30
回答 2查看 335关注 0票数 0

下面是我需要通过JavaScript找到的html:

代码语言:javascript
复制
 <i class="material-icons bh-icon-accordion">keyboard_arrow_up</i>

我有一个arrow_up元素和几个arrow_down元素,所以不能通过class查找元素。此外,该项目没有id属性,因此document.getElementById不是一个选项。

有没有办法通过"keyboard_arrow_up“找到它?

EN

回答 2

Stack Overflow用户

发布于 2018-11-06 00:45:23

正如@AminJafari在评论中所说,这是一个非常繁重的操作,可能会毁了你的性能。您仍然可以在第一个实例中限制您的元素,并在以后过滤它们,这将具有较低的影响:

代码语言:javascript
复制
Array.from(document.querySelectorAll('.material-icons'))
  .map(_ => _.innerText)
  .filter(text => text === 'keyboard_arrow_up');
票数 2
EN

Stack Overflow用户

发布于 2018-11-06 00:08:15

给它一个#id不会有什么坏处,你可以通过它来选择它。

代码语言:javascript
复制
<i class="material-icons bh-icon-accordion" id="my-selector">keyboard_arrow_up</i>

或者甚至添加一个额外的类

代码语言:javascript
复制
<i class="material-icons bh-icon-accordion my-selector">keyboard_arrow_up</i>

这样您就可以在元素上使用querySelector

代码语言:javascript
复制
const el = document.querySelector("#my-selector");

代码语言:javascript
复制
const el = document.querySelector(".my-selector");

在Angular中,使用带有模板引用的@ViewChild装饰器。

代码语言:javascript
复制
<i class="material-icons bh-icon-accordion" #myselector>keyboard_arrow_up</i>

然后在您的类中,使用ViewChild绑定到它

代码语言:javascript
复制
@ViewChild('myselector') 
private myElement : ElementRef; 

别忘了从@angular/ ViewChild导入核心

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53157889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档