用输入和文本区域替换元素的Javascript

用输入和文本区域替换元素的Javascript,javascript,php,html,wordpress,Javascript,Php,Html,Wordpress,我正在为我的Wordpress博客在前端构建一个小型块编辑器,在那里我试图使用javascript将所有元素从帖子内容转换为一组输入和文本区域 首先,我创建一个虚拟元素,并将来自php的帖子内容添加到其中: var dummy = document.createElement( 'div' ); dummy.innerHTML = '<?php echo $text; ?>'; console.log(dummy.innerHTML); 好的,所以我有一个无效的比较表达式,而不是:

我正在为我的Wordpress博客在前端构建一个小型块编辑器,在那里我试图使用javascript将所有元素从帖子内容转换为一组输入和文本区域

首先,我创建一个虚拟元素,并将来自php的帖子内容添加到其中:

var dummy = document.createElement( 'div' );
dummy.innerHTML = '<?php echo $text; ?>';
console.log(dummy.innerHTML);

好的,所以我有一个无效的比较表达式,而不是:

els[i].tagName.toLowerCase() == ("h2" || "h3" || "h4" || "h5" || "h6")
正确的方法是:

["H2","H3","H4","H5","H6"].indexOf(el[i].tagName.toUpperCase()) != -1

因为第一个表达式总是简化为第一个元素。

这是学习任务还是实际站点的表单?如果这是针对站点的,则不应操纵dom。而是使用React或Vue编写表单,以处理与elements@BenB嗯,我正在寻找一个普通的javascript解决方案。@BenB我仍然不明白,为什么我不应该操纵DOM。它工作得很好,我知道香草js比react更好。React归Facebook所有,是Facebook强迫的,但如果你不是为Facebook工作,那么你为什么建议在原生javascript上使用第三方软件?
els[i].tagName.toLowerCase() == ("h2" || "h3" || "h4" || "h5" || "h6")
["H2","H3","H4","H5","H6"].indexOf(el[i].tagName.toUpperCase()) != -1