You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从BackdraftJS元素中获取innerHTML?

获取封装DOM对象的innerHTML

你用e.div()创建的foo并不是原生HTMLElement节点,而是某个DOM封装库返回的实例/虚拟DOM对象,所以直接访问innerHTML或bdDom.root无效。需要先拿到它对应的原生DOM节点,再获取innerHTML。

可以按以下几种方式尝试:

1. 查找封装对象暴露的原生节点属性

这类库通常会把原生DOM元素挂载在实例的el、element或node属性上,试试:

foo.el.innerHTML;
// 或者
foo.element.innerHTML;
// 或者
foo.node.innerHTML;

2. 检查bdDom的其他子属性

你已经试过foo.bdDom.root,可以看看bdDom下有没有element、dom这类属性:

foo.bdDom.element.innerHTML;
// 或者
foo.bdDom.dom.innerHTML;

3. 虚拟DOM类库的处理方式

如果e.div返回的是虚拟DOM节点(类似mithril、preact的语法),需要先把它渲染到真实DOM容器中再获取:

// 创建临时容器
const tempContainer = document.createElement('div');
// 用对应库的渲染方法把foo渲染进去(替换成你使用的库的渲染函数)
render(tempContainer, foo);
// 此时就能拿到目标内容
console.log(tempContainer.innerHTML);

4. 手动查找原生节点

如果上面的方法都不行,打开浏览器控制台执行console.dir(foo),展开对象的所有属性,找到类型为HTMLElement的节点,再访问它的innerHTML即可。

内容的提问来源于stack exchange,提问作者Peter Hollingsworth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:10:13