web-dev-qa-db-ja.com

TypeScriptでトリガークリック-プロパティ 'click'はタイプ 'Element'に存在しません

TypeScript/ReactjsのHTML要素でクリックイベントをトリガーしたいと思います。

let element: Element = document.getElementsByClassName('btn')[0];
element.click();

上記のコードは機能します。しかし、TypeScriptエラーが発生しています:

ERROR in [at-loader] ./src/App.tsx:124:17
TS2339: Property 'click' does not exist on type 'Element'.

それで、これを行う正しい方法は何でしょうか?

20
Floris

タイプHTMLElementの代わりにElement。 HTMLElementはElementを継承します。また、ドキュメントでは、click関数がHTMLElementで定義されていることがわかります。

経由で要素をHTMLElementにキャストします

let element: HTMLElement = document.getElementsByClassName('btn')[0] as HTMLElement;
element.click();
47
Suren Srapyan

refを使用してDOMにアクセスする必要があります。

<button  ref={button => this.buttonElement = button} />
In your event handler:

this.buttonElement.click();// trigger click event

または、HtmlEventsを作成し、dom要素にアタッチします。

var event = document.createEvent("HTMLEvents");
event.initEvent("click", true, true);
var button = document.getElementsByClassName('btn')[0];
button.dispatchEvent(event);
3
Ved

このように使用する

(<HTMLElement>document.getElementsByClassName('btn')[0]).click()
2
Mukesh
document
  .querySelectorAll<HTMLElement>('.ant-table-row-expand-icon')
  .forEach(node => node.click())
0
Army-U