javascript - 如何创建动态添加 html 元素的 javascript 函数?
问题描述
我正在尝试创建一个添加新 html 元素的 javascript 函数,每个元素都有新的 ID。例如这个表格;为了让用户提交他能说的语言和他在每种语言上的水平。但如果他会说很多语言,他可以添加新的输入来输入其他语言。
<form id="form">
Language spoken1: <input id="language1">
Level: <input id="level1">
<form>
<input type="button" value="add new language" id="add" onclick="myFunction">
得到这样的结果
<form id="form">
Language spoken1: <input id="language1">
Level: <input id="level1">
Language spoken2: <input id="language2">
Level: <input id="level2">
<form>
<input type="button" value="add new language" id="add" onclick="myFunction">
当他提交这样的结果时,页面上将显示
口语1:英语,水平:母语口语2:西班牙语,水平:良好
解决方案
每次单击按钮时,它将创建两个输入元素,计算现有输入并找到新输入 ID 的数量。在添加...和删除按钮后,我还添加了自动对焦输入)
(function(){
let form = document.getElementById('form');
document.getElementById('add').addEventListener('click', function(){
let lang = document.createElement('input');
let level = document.createElement('input');
let number = document.querySelectorAll('#form input').length / 2 + 1;
lang.id = 'language' + number;
level.id = 'level' + number;
lang.placeholder = 'Language spoken' + number;
level.placeholder = 'Level';
form.innerHTML += '<br>';
form.appendChild(lang);
form.appendChild(level);
lang.focus();
});
document.getElementById('delete').addEventListener('click', function(){
let inp = document.querySelectorAll('#form input');
if(inp.length == 2){ return; }
/* removing last two elements */
inp[inp.length-1].remove();
inp[inp.length-2].remove();
let br = document.querySelectorAll('#form br');
br[br.length-1].remove();
});
})();
#delete {
color: white;
background-color: #c00;
border: 2px solid #c00;
outline: none;
cursor: pointer;
}
#form {white-space: inherit;}
input {margin: 2px 5px;}
<form id="form">
<input id="language1" placeholder="Language spoken1"><input id="level1" placeholder="Level">
</form>
<br>
<input type="button" value="add a new language" id="add">
<input type="button" value="X" id="delete">
任何问题?)
推荐阅读
- ios - 如何在 iOS 中更改 UIColorPickerViewController 的语言?
- sql - SQL数据操作(添加FK并显示来自不同表的数据)
- php - 使用负载平衡器的 $_SERVER['REMOTE_ADDR'] 的解决方法
- android - 使用单个元素 android studio 获取 Json 数组
- android - 如何将应用内消息仅针对特定用户?
- python - 生成随机复值张量
- javascript - 如何使用 Javascript 创建无格式文件上传?
- android - 如何在具有 X 和 Y 标题的 android 中创建 uiCollectionView 类型的布局并可以绘制数据
- javascript - 文件上传后如何显示关闭图标
- python - 10 的幂在 Python 中无法正常工作:乘以 10**7 不返回与 10e7 相同的结果