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`
-
`)}
`;
}