Lit element 添加和删除活动类

Lit element 添加和删除活动类,lit-element,Lit Element,我有一个导航栏包含一些项目。如何向单击的项添加活动类并从其他项中删除? 我试图通过document.getElementsByClassName获取这些元素,但它会抛出错误,因为您正在谈论的是LitElement,而且您正在使用的组件很可能有一个错误 因此,由于查询文档从一开始就是一个错误,因此您希望在元素内部进行查找,而不是在顶级文档级别 因此,在一个组件中,获取具有特定类的所有元素,而不是: document.getElementsByClassName('item') 你会这样做 thi

我有一个导航栏包含一些项目。如何向单击的项添加活动类并从其他项中删除?
我试图通过document.getElementsByClassName获取这些元素,但它会抛出错误,因为您正在谈论的是LitElement,而且您正在使用的组件很可能有一个错误

因此,由于查询文档从一开始就是一个错误,因此您希望在元素内部进行查找,而不是在顶级文档级别

因此,在一个组件中,获取具有特定类的所有元素,而不是:

document.getElementsByClassName('item')
你会这样做

this.shadowRoot.getElementsByClassName('item')


因为您正在谈论的是LitElement,而且您正在处理的组件很可能有一个

因此,由于查询文档从一开始就是一个错误,因此您希望在元素内部进行查找,而不是在顶级文档级别

因此,在一个组件中,获取具有特定类的所有元素,而不是:

document.getElementsByClassName('item')
你会这样做

this.shadowRoot.getElementsByClassName('item')


您应该通过使用绑定
属性来实现这一点。根据文档
classMap

基于对象设置类列表。对象中的每个键都被视为一个类名,如果与该键关联的值为truthy,则该类将添加到元素中

例如,假设元素有一个
navItems
属性,如下所示:

this.navItems=[
{id:'home',href:'/',title:'home'},
{id:'contact',href:'/contact',title:'contact Us'},
];
…以及与这些
id
s中的一个相对应的
activeNavItemId
属性。您可以这样渲染它们:

import{classMap}来自'lithtml/directions/classMap';
// ...
render(){
返回html`
    ${this.navItems.map(项=>html`
  • `)}
`; }
您应该通过使用绑定
属性来完成此操作。根据文档
classMap

基于对象设置类列表。对象中的每个键都被视为一个类名,如果与该键关联的值为truthy,则该类将添加到元素中

例如,假设元素有一个
navItems
属性,如下所示:

this.navItems=[
{id:'home',href:'/',title:'home'},
{id:'contact',href:'/contact',title:'contact Us'},
];
…以及与这些
id
s中的一个相对应的
activeNavItemId
属性。您可以这样渲染它们:

import{classMap}来自'lithtml/directions/classMap';
// ...
render(){
返回html`
    ${this.navItems.map(项=>html`
  • `)}
`; }