如何在打字稿中按类名选择元素?

时间:2016-07-10 13:11:16

标签: typescript

我正在尝试设计在小屏幕中折叠的响应式菜单栏,但是,我正在使用打字稿。是否有任何线索与typescript

中的此代码等效
function myFunction() {
document.getElementsByClassName("topnav")[0].classList.toggle("responsive");}

我在打字稿中改为此代码,但它永远不会起作用

myFunction(): void {
(<HTMLScriptElement[]><any>document.getElementsByClassName("topnav"))[0].classList.toggle("responsive");
}

1 个答案:

答案 0 :(得分:14)

没有必要改变任何东西,因为typescript是javascript的超集,所以即使是常规的javascript也可以是打字稿。

话虽如此,您可以添加一些打字稿功能:

function myFunction(): boolean {
    let elements: NodeListOf<Element> = document.getElementsByClassName("topnav");
    let classes: DOMTokenList = elements[0].classList;
    return classes.toggle("responsive");
}

但是没有必要像这样拆分它们,所以你可以拥有你的确切代码,但也许可以在函数签名中添加一个返回类型:

function myFunction(): void {
    document.getElementsByClassName("topnav")[0].classList.toggle("responsive");
}

或者

function myFunction(): boolean {
    return document.getElementsByClassName("topnav")[0].classList.toggle("responsive");
}