Javascript 使用JS创建动态输入类型
有人能告诉我为什么这不起作用吗 我的目标是创建一个列表输入类型,并为每个类型分配一个类Javascript 使用JS创建动态输入类型,javascript,Javascript,有人能告诉我为什么这不起作用吗 我的目标是创建一个列表输入类型,并为每个类型分配一个类 var container = document.createElement('div'); container.setAttribute('id','Maincontainer'); document.body.append(container); var count = ['class1','class2','class3','class4','class5']; var i; for( i = 0;
var container = document.createElement('div');
container.setAttribute('id','Maincontainer');
document.body.append(container);
var count = ['class1','class2','class3','class4','class5'];
var i;
for( i = 0; i <= count.length; i++){
container.innerHTML += '<input>';
}
count.forEach( function(){
count = document.getElementsByTagName('input');
count.setAttribute('class',i);
});
var container=document.createElement('div');
setAttribute('id','Maincontainer');
document.body.append(容器);
变量计数=['class1','class2','class3','class4','class5'];
var i;
对于(i=0;i您想将class
从count
数组分配给每个输入元素,对吗
然后在forEach
的回调中,您需要分别为类名和相应的输入元素提供元素
和索引
此外,document.getElementsByTagName
是一个数组,因此您需要知道要通过索引修改哪个输入元素,并检查forEach
语义
您正在传递一个从最后一个for循环使用的i
,它的值始终是第一个循环离开时的值,该值等于输入元素数减去1
var inputElements = document.getElementsByTagName('input');
count.forEach(function(className, index){
count = inputElements[index];
count.setAttribute('class',className);
});
var container=document.createElement('div');
setAttribute('id','Maincontainer');
document.body.append(容器);
变量计数=['class1','class2','class3','class4','class5'];
var i;
对于(i=0;i您想将class
从count
数组分配给每个输入元素,对吗
然后在forEach
的回调中,您需要分别为类名和相应的输入元素提供元素
和索引
此外,document.getElementsByTagName
是一个数组,因此您需要知道要通过索引修改哪个输入元素,并检查forEach
语义
您正在传递一个从最后一个for循环使用的i
,它的值始终是第一个循环离开时的值,该值等于输入元素数减去1
var inputElements = document.getElementsByTagName('input');
count.forEach(function(className, index){
count = inputElements[index];
count.setAttribute('class',className);
});
var container=document.createElement('div');
setAttribute('id','Maincontainer');
document.body.append(容器);
变量计数=['class1','class2','class3','class4','class5'];
var i;
对于(i=0;i
var container=document.createElement('div');
setAttribute('id','Maincontainer');
document.body.append(容器);
变量计数=['class1','class2','class3','class4','class5'];
var i;
对于(i=0;i
var container=document.createElement('div');
setAttribute('id','Maincontainer');
document.body.append(容器);
变量计数=['class1','class2','class3','class4','class5'];
var i;
对于(i=0;i我认为下一个代码是一个好方法:
let container = document.createElement('div');
container.setAttribute('id','Maincontainer');
let input = document.createElement('input');
let count = ['class1','class2','class3','class4','class5'];
for(let i = 0; i < count.length; i++){
let cloneInput = input.cloneNode();
cloneInput.classList.add(count[i]);
container.appendChild(cloneInput);
}
document.body.append(container);
let container=document.createElement('div');
setAttribute('id','Maincontainer');
让输入=document.createElement('input');
让计数=['class1'、'class2'、'class3'、'class4'、'class5'];
for(设i=0;i
这段代码更快,因为conainer插入到带有所有childNode的文档中,并且DOM被重绘一次。如果使用createElement而不是innerHtml,则本机代码在不使用Serriaze html的情况下创建新元素的速度会更快。而且我在DOM中没有多次使用find elemet。您可以尝试foreach而不是loop for。我认为下一段代码是一个好方法:
let container = document.createElement('div');
container.setAttribute('id','Maincontainer');
let input = document.createElement('input');
let count = ['class1','class2','class3','class4','class5'];
for(let i = 0; i < count.length; i++){
let cloneInput = input.cloneNode();
cloneInput.classList.add(count[i]);
container.appendChild(cloneInput);
}
document.body.append(container);
let container=document.createElement('div');
setAttribute('id','Maincontainer');
让输入=document.createElement('input');
让计数=['class1'、'class2'、'class3'、'class4'、'class5'];
for(设i=0;i
这段代码速度更快,因为conainer插入到带有所有childNode的文档中,DOM会被重新绘制一次。如果使用createElement而不是innerHtml,则本机代码在不使用Serriaze html的情况下创建新元素,速度会更快。而且我在DOM中没有多次使用find elemet。您可以尝试foreach而不是loop for。我建议存储新创建的元素将元素输入到变量中
var inputElements = document.getElementsByTagName('input');
然后,在forEach
函数中,为当前使用的输入元素创建一个新变量,并将其类设置为原始count
数组中存储的类名
count.forEach(function (className, index) {
var currentInputElement = inputElements[index];
currentInputElement.setAttribute('class', className);
});
希望这有帮助!我建议将新创建的输入元素存储到变量中
var inputElements = document.getElementsByTagName('input');
然后,在forEach
函数中,为当前使用的输入元素创建一个新变量,并将其类设置为原始count
数组中存储的类名
count.forEach(function (className, index) {
var currentInputElement = inputElements[index];
currentInputElement.setAttribute('class', className);
});
希望这有帮助!您是否尝试将列表中的一个类应用于每个可能的输入字段?因此输入字段1将获得class1,输入字段2将获得class2,等等?您是否尝试将列表中的一个类应用于每个可能的输入字段?因此输入字段1将获得class1,输入字段2将获得class2,等等。。?