Javascript 从动态生成的输入字段中获取下拉列表中的数据,而不保存值-jquery

Javascript 从动态生成的输入字段中获取下拉列表中的数据,而不保存值-jquery,javascript,jquery,html,Javascript,Jquery,Html,我通过用户输入动态生成了输入字段。 我的表格没有保存。 我必须从所有输入字段中获取值,并将它们填充到 下拉选择框 还有,还有其他方法吗? 这是正确的方法吗?您可以将具有相同类的输入元素的值添加到select元素,如下所示: $("input.className").each(function (index,element) { var inputVal = $("element").val(); $("select").append('<option>'+inputV

我通过用户输入动态生成了输入字段。 我的表格没有保存。 我必须从所有输入字段中获取值,并将它们填充到 下拉选择框

还有,还有其他方法吗?
这是正确的方法吗?

您可以将具有相同类的输入元素的值添加到select元素,如下所示:

$("input.className").each(function (index,element)
{
    var inputVal = $("element").val();
    $("select").append('<option>'+inputVal+'</option');
});
for(i=0, len=dropDownInputsArray.length; i < len; i++){

}
$(“input.className”)。每个(函数(索引,元素)
{
var inputVal=$(“元素”).val();

$(“选择”).append(“”+inputVal+”如果页面不是动态生成的,则应首先获取所有输入。如果是动态生成的,则dom节点应已存储在对象中

假设您在一个页面上有多个输入部分(不是动态生成的),每个部分都用一个id表示:

<div class="formSection" id="dropDownEntry">
    <label for="dropDown1">Drop1</label>
    <input id="dropDown1"></input>
    <label for="dropDown2">Drop1</label>
    <input id="dropDown2"></input>
</div>
好的,很好,现在您有了一个输入数组,并且您已经将其存储在全局范围之外的函数中。不要使用$。each。这是一个坏习惯,因为它非常慢。我实际上从未使用过它。曾经,这也不难避免。遍历您的dom节点数组,并确保在init上缓存长度,如下所示:

$("input.className").each(function (index,element)
{
    var inputVal = $("element").val();
    $("select").append('<option>'+inputVal+'</option');
});
for(i=0, len=dropDownInputsArray.length; i < len; i++){

}
for(i=0,len=dropdownputsarray.length;i
但是等一下,您首先需要创建一个非全局范围的节点来存储您选择的节点,这样您就不会以迭代方式向dom追加内容。游戏的名称是“不要碰G-D dom”

var mySelectNode = $('<select/>');
//len caches the length so you don't have to look it up each time.  Performance ++
 for(i=0, len=dropDownInputsArray.length; i < len; i++){
      var inputNodeVal = dropDownInputsArray[i].value;
      if(inputNodeVal.length > 0) //was anything entered there?
        mySelectNode.append($('<option/>', {
                   value: inputNodeVal,
                   text: inputNodeval
               }));
 }

//now append your mySelectNode to the dom or replace the previous select node with it.  We did it this way because before you actually attach a node to the dom you have stayed in javascript land which is 'cheaper' than touching dom-land.  
var mySelectNode=$('');
//len缓存长度,因此您不必每次都查找它。性能++
对于(i=0,len=dropdownputsarray.length;i0)//是否在此处输入了任何内容?
mySelectNode.append($(''){
值:inputNodeVal,
文本:inputNodeval
}));
}
//现在将您的mySelectNode附加到dom,或者用它替换以前的select节点。我们这样做是因为在您将节点附加到dom之前,您一直停留在javascript领域,这比接触dom领域“便宜”。

这样做几乎是解决问题效率最低的方法

$("input.className").each(function (index,element)
{
    var inputVal = $("element").val();
    $("select").append('<option>'+inputVal+'</option');
});
$(“input.className”)。每个(函数(索引,元素)
{
var inputVal=$(“元素”).val();

$(“选择”).append(“”+inputVal+’我有多个输入字段,它们实际上是动态生成的。我必须将所有这些输入字段的值放到一个下拉列表中。假设我已经生成了5个输入字段和5个以上的输入字段,那么我将在下拉列表中选择一半的值,再选择5个,这样如果生成,就会有更多的dom查找如果使用jquery,我喜欢的模式是:var displayNodes={};displayNodes.dynamicSelect=$('