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的东西,但这种方式更干净。