Javascript 如何将HTMLTableRowElement插入表体?

Javascript 如何将HTMLTableRowElement插入表体?,javascript,html,node.js,frontend,Javascript,Html,Node.js,Frontend,我已经研究了和表体方法,但没有提到如何插入HTMLTableRowElement。有人知道将HTMLTableRowElement插入表体的好方法吗 const tbody = document.getElementsByTagName('tbody')[0]; // Only inserts an empty row // Want to insert a HTMLTableRowElement that I've parsed using jsdom tbody.insertRow();

我已经研究了和表体方法,但没有提到如何插入
HTMLTableRowElement
。有人知道将
HTMLTableRowElement
插入表体的好方法吗

const tbody = document.getElementsByTagName('tbody')[0];
// Only inserts an empty row
// Want to insert a HTMLTableRowElement that I've parsed using jsdom
tbody.insertRow();
编辑: 有了guidance@frontend_dev,看起来好像没有使用本机DOM元素。因此,解决方案可能如下所示:

let rows_rep = '';
jsdom.env(html_with_tr, function(err, w) {
  rows_rep = w.document.getElementsByTagName('tr')[0].outerHTML; 
}

const tbody = document.getElementsByTagName('tbody')[0];
const newRow = tbody.insertRow();
newRow.innerHTML = rows_rep;

给定包含要添加的行的HTML字符串,您可以在不使用
jsdom
的情况下获取该行,并将其附加到当前文档中的表中:

//示例HTML字符串:
变量html=`
我的头衔
动态添加行
其他文本在这里

`; //创建内存元素并将HTML加载到其中: var span=document.createElement('span'); span.innerHTML=html; //从中取出行元素,并附加它: var tr=span.querySelector('tr'); var tbody=document.querySelector('tbody'); t附肢儿童(tr)

现有行

给定包含要添加的行的HTML字符串,您可以在不使用
jsdom的情况下获取该行,并将其附加到当前文档中的表中:

//示例HTML字符串:
变量html=`
我的头衔
动态添加行
其他文本在这里

`; //创建内存元素并将HTML加载到其中: var span=document.createElement('span'); span.innerHTML=html; //从中取出行元素,并附加它: var tr=span.querySelector('tr'); var tbody=document.querySelector('tbody'); t附肢儿童(tr)

现有行

如果您有一个预渲染的
dom元素,为什么不直接使用
appendChild
insertBefore
?我试过了,但它说
参数1不是'Node'类型的。也许jsdom没有使用本机DOM元素?为了提供更多的上下文,我使用从另一个页面获取元素,然后尝试将这些元素注入到我的当前页面中。我不知道jsdom,但乍一看,它似乎不是本地DOM。因此,您唯一的选择可能是使用字符串表示,然后在您使用例如insertRow()创建的元素上使用用户innerHTML。看起来,这就是我必须要做的。谢谢你的建议!有什么理由需要使用jsdom来实现此目的吗?如果您有一个预渲染的
dom元素,为什么不直接使用
appendChild
insertBefore
?我试过了,但它说
参数1不是'Node'类型的。也许jsdom没有使用本机DOM元素?为了提供更多的上下文,我使用从另一个页面获取元素,然后尝试将这些元素注入到我的当前页面中。我不知道jsdom,但乍一看,它似乎不是本地DOM。因此,您唯一的选择可能是使用字符串表示,然后在您使用例如insertRow()创建的元素上使用用户innerHTML。看起来,这就是我必须要做的。谢谢你的建议!您有什么理由需要使用jsdom来实现这一点吗?谢谢大家。您是对的,不需要jsdom。起初我想找一些类似于BeautifulSoup的东西,但这种方式更干净。谢谢大家。您是对的,不需要jsdom。起初我在寻找类似于BeautifulSoup的东西,但这种方式更干净。