我需要在id不知道的表单中添加一个输入元素。如果页面中只有一个表单,则下面的代码效果很好
var dd = document.createElement("div");
dd.id = "cont";
dd.name = "cont";
var pp = document.createElement("input");
pp.type = "password";
pp.name = "pass";
dd.appendChild(pp);
document.getElementsByTagName('form')[0].appendChild(dd);
但是当页面中有多个表单时,此输入元素将使用上面的代码附加到第一个表单。
请记住,我不知道html页面中有多少表单。用户可以在页面中以任何形式放置脚本。那么我如何确保输入元素被附加到正确的表单。有人提出了jquery nearest()函数,但我更喜欢纯粹的javascript
一个有效的例子是google recaptcha。 recaptcha challenge文本框出现在你把脚本完全放在你想要的形式的地方。
所以,任何有关纯JavaScript代码的帮助都会非常感激。
感谢名单..
答案 0 :(得分:1)
如果要将input
标记插入到放置脚本标记的同一表单中。您可以像这样引用特定的表单
var form = document.currentScript.parentNode;
form.appendChild(dd);
答案 1 :(得分:0)
向Class
添加form
,
并在javascript中按类名获取表单
document.getElementsByClassName('classname')[0].appendChild(dd);