Javascript 如何在Villa JS中将输入框替换为下拉框

Javascript 如何在Villa JS中将输入框替换为下拉框,javascript,Javascript,我试图用Vanilla JS替换输入框。目前,我正在使用jquery这样做 column.replaceWith("<select id='" + column[0].id + "' name='" + column[0].id + "' class='" + column[0].className + "'></select>"); 列。替换为(“”); 我正在将我所有的代码重构成Vanilla JS,这是我最不需要做的事情。我已经完成了document.creat

我试图用Vanilla JS替换输入框。目前,我正在使用jquery这样做

column.replaceWith("<select id='" + column[0].id + "' name='" + column[0].id + "' class='" + column[0].className + "'></select>");
列。替换为(“”);
我正在将我所有的代码重构成Vanilla JS,这是我最不需要做的事情。我已经完成了document.createElement('select');这就创建了
元素。然后我试着去做

newEl.innerHTML += '<select id="selBidReceivedIsPM" name="selBidReceivedIsPM">'
                + '<option value="0">AM</option>'
                + '<option value="1">PM</option>';
newEl.innerHTML+=''
+“AM”
+"下午",;
,, 但这不会创建id或名称。在过去的3个小时里,我一直在谷歌上搜索和尝试,需要一些帮助来解决这个问题

html:


类似的东西应该可以用来创建带有value和innerHTML选项的select

var select=document.createElement('select');
select.id=“selBidReceivedIsPM”
select.name=“selBidReceivedIsPM”
var=2;
变量时间=[“上午”、“下午”];

对于(var i=0;i这样的东西应该可以创建带有value和innerHTML选项的select

var select=document.createElement('select');
select.id=“selBidReceivedIsPM”
select.name=“selBidReceivedIsPM”
var=2;
变量时间=[“上午”、“下午”];

对于(var i=0;i我认为,如果
DOM
元素不是由
javascript
创建的,而是呈现的,那么您不能“删除”它(在您的情况下,
input type=“number”…

您可以通过“隐藏”
input
并将
select
元素放置在“his”位置来“替换”它

有一个例子,试试看:

函数replacele(){
var txt=document.getElementById('columnA5');
/*
或者您可以使用querySelectorAll:
var txt=document.querySelectorAll('input[type=“number”]”);
然后你们将得到页面中的所有文本框,然后你们必须使用for循环
*/
var sel=document.createElement('select');//创建select元素
sel.id='selBidReceivedIsPM';
sel.setAttribute('onchange','alert(this.value');
/*显示所选值,或者输入一些JS
功能,当选项被更改时该怎么办*/
var opt=document.createElement('option');//创建选项元素
opt.value=0;opt.innerHTML='AM';
sel.appendChild(opt);//将option元素添加到select元素中
opt=document.createElement('option');
opt.value=1;opt.innerHTML='PM';
选择附加儿童(opt);
sel.selectedIndex=0;//设置默认选定值
txt.style.display='none';//隐藏输入元素
txt.parentNode.insertBefore(sel,txt);//在输入之前插入select元素,
}


我认为,如果
DOM
元素不是由
javascript
创建的,而是呈现的,那么您不能“删除”它(在您的例子中,
input type=“number”…

您可以通过“隐藏”
input
并将
select
元素放置在“his”位置来“替换”它

有一个例子,试试看:

函数replacele(){
var txt=document.getElementById('columnA5');
/*
或者您可以使用querySelectorAll:
var txt=document.querySelectorAll('input[type=“number”]”);
然后你们将得到页面中的所有文本框,然后你们必须使用for循环
*/
var sel=document.createElement('select');//创建select元素
sel.id='selBidReceivedIsPM';
sel.setAttribute('onchange','alert(this.value');
/*显示所选值,或者输入一些JS
功能,当选项被更改时该怎么办*/
var opt=document.createElement('option');//创建选项元素
opt.value=0;opt.innerHTML='AM';
sel.appendChild(opt);//将option元素添加到select元素中
opt=document.createElement('option');
opt.value=1;opt.innerHTML='PM';
选择附加儿童(opt);
sel.selectedIndex=0;//设置默认选定值
txt.style.display='none';//隐藏输入元素
txt.parentNode.insertBefore(sel,txt);//在输入之前插入select元素,
}


您可以添加HTML和完整脚本吗?您可以添加HTML和完整脚本吗?
 <label for="columnA5"></label>
 <input
       type="number"
       id="columnA5"
       name="columnA5"
       class="columnA"
       step="any"
 >