有没有一种方法可以将insertBefore()与getElementsByClassName代替getElementById一起使用?

时间:2020-09-11 21:56:18

标签: javascript html dom

我正在编写一些代码来修改非营利组织CMS上表单的外观。我可以通过添加针对它的自定义CSS来更改表单的某些部分(即,向表单的自动生成的元素之一添加visibleability:hidden属性),但是我没有办法直接更改基本代码组成表格。我只能在此之上构建。

我试图用某种可折叠的方式来包装表格的特定部分,因此默认情况下它不会显示,但可以切换。通常,我只是将div夹在创建可折叠的代码之间,但是在这种情况下我不能这样做。相反,我试图做的是找出一种方法,使用insertBefore()在form元素前后添加我需要的HTML中来解决此问题。

除了getElementByID()之外,insertBefore()似乎不能与其他任何元素选择器一起使用。我要定位的表单元素没有ID,只有一个仅适用于该部分的类名(从功能上来说就是一个ID),但getElementsByClassName()似乎不起作用,而且我不能修改表单的基本代码以添加ID。

这是我用来构造它的基本模板(将div id替换为div类,将getElementById(“ div1”)替换为getElementsByClassName(“ div1”)。

<div id="div1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

<script>
var para = document.createElement("p");
var node = document.createTextNode("This is new.");
para.appendChild(node);

var element = document.getElementById("div1");
var child = document.getElementById("p1");
element.insertBefore(para,child);
</script>

我是否缺少某些东西,或者这不可能/太复杂了吗?预先感谢!

0 个答案:

没有答案