我试图避免使用jQuery,只需要克隆一个元素,例如
var table: Node = document.querySelector('#myTable').cloneNode(false);
后来,我需要
return table.outerHTML;
但是我收到了错误
ERROR in [at-loader] ./src/components/overworld-component.tsx:24:43
TS2339: Property 'outerHTML' does not exist on type 'Node'.
哪个有道理。只有Element
有outerHTML
。
我应该在这做什么?
Node
投放到Element
,因为我知道它绝对是Element
?或者,我是否在上游做错了什么?也许我根本不需要使用outerHTML
?我认为我需要outerHTML
中的dangerouslySetInnerHTML
export class OverworldComponent extends React.Component<OverworldComponentProps, {}> {
render() {
var table: Node = document.querySelector('div.file div.data table').cloneNode(false);
return <div id="overworld-viewer"
dangerouslySetInnerHTML=
{ { __html: table.outerHTML } } />;
}
}
:
view.getId()
答案 0 :(得分:1)
不要指定数据类型,只需使用&#39;任何&#39;
var table: any = document.querySelector('#myTable').cloneNode(false);
或者
var table: HTMLElement = <any>document.querySelector('#myTable').cloneNode(false);
答案 1 :(得分:1)
如何直接保存outerHTML?
export class OverworldComponent extends React.Component<OverworldComponentProps, {}> {
render() {
var outerHTML: string = document.querySelector('div.file div.data table').outerHTML;
return <div id="overworld-viewer"
dangerouslySetInnerHTML=
{ { __html: outerHTML } } />;
}
}
或者您可以投射cloneNode
:
var table: Element = document.querySelector('div.file div.data table').cloneNode(false) as Element;