JS:如何为新创建的HTML元素分配ID
JS: How to assign an ID to a newly created HTML element
我正在构建一个动态表单。这个想法是,您可以按下按钮添加新的输入字段,用字符串数据填充它们,当您单击提交时,它会以正确的格式使用此数据创建一个div。
我已经完成了大部分工作,尽管我遇到的问题是只有第一个输入字段被识别,而 JS 创建的任何新文本字段都没有。
问题是我通过 ID 查找输入的值,但我不确定新创建的输入的 ID 是什么,因此我无法获取它。
我已经用我的原型设置了一个 JSFiddle,但即使我保存文件并在浏览器中打开它也能正常工作,它在那里也无法正常工作。
这是以防万一的代码:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<style>
.HiddenDiv{
color: red;
}
</style>
<script>
//-----CREATES NEW INPUT LINE-----
var counter1 = 1;
var limit1 = 5;
function addInput(divName){
if (counter1 == limit1) {
alert("You have reached the limit of adding " + counter1 + " inputs");
}
else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<input type='text' name='myInputs[]'>";
document.getElementById(divName).appendChild(newdiv);
counter1++;
}
}
//-----TAKES VALUE AND PRINTS IT ON DIV-----
var counter2 = 0; //Prevents user from creating multiple nodes on submit
var limit2 = 1; //Amount of nodes that can be created per input field
function createNode(){
if (counter2 == limit2) {
//Do nothing
}
else {
var input = document.getElementById('textInput1').value; //Retrieves input
var newText = document.createElement("li"); //Creates the HTML node
newText.innerHTML = input; //Sets the node's value to whatever is in the input
document.getElementById("Form").appendChild(newText); //Adds the node to the div
counter2++;
}
}
</script>
</head>
<body>
<div id="dynamicInput">
Job Requirements<br>
<input type="text" name="myInputs[]" id="textInput1">
</div>
<form method="POST">
<input type="button" value="+" onClick="addInput('dynamicInput');">
<input type="button" value="Submit" onClick="return createNode()">
</form>
<div id="Form" class="HiddenDiv">
</div>
</body>
</html>
我认为使用
document.querySelectorAll
会更容易:
var inputs = document.querySelectorAll('input[name="myInputs[]"');
然后,您可以从循环输入中获取内容。
相关文章:
- 如何设置html元素填充的动画
- 删除对HTML元素的拖动
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 一个html元素的克隆次数太多
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 为什么我在Internet Explorer上看不到html元素
- 重新排列HTML元素的顺序并更改内容
- 使用.on动态添加jquery/js不知道的html元素
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 如何将html元素添加到tampermonkey中
- 访问html元素值javascript
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 自定义HTML元素属性未显示-Web组件
- 让HTML元素充当停止滚动的锚点
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 替换HTML元素中的字符
- 如何将html元素添加为生成的内容
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用JS加载HTML元素