繁体   English   中英

如果内部元素不同,如何从每个循环为数组获取值

[英]how do i get value to my array from each loop if the inner elements were different

每当我认为它将要完成的时候,我都会在这个js的中间,我又遇到了另一个障碍。 我想要得到的是来自不同元素的值,例如其中一些是<input type="text"> ,其他是<select>这是我的代码

var eduarray = [];
    $('.education-groupbox').each(function(index, el) {
        eduarray[index] = [];   
        var s = $(this).attr('id');
        //console.log();
        $('#'+s+' .inputs').each(function(key, value) {

            //console.log($(this).children('.seviyeoptions').val());
            if(key == 1)
            {

                eduarray[index][key].push($(value).children('.seviyeoptions').val());
            }

        });

    });

这是html部分

<div id="education-groupbox" class="education-groupbox">
  <div class="inputs col-3">
    <label for="email">Seviye</label>
    <select class="seviyeoptions" name="" id="">
      <option value="option one"></option>
      <option value="option one">Option One</option>
      <option value="option two">Option Two</option>
    </select>
  </div>
  <div class="inputs col-3">
    <label for="email">Okul Adı</label>
    <input type="text" name="email" />
  </div>
  <div class="inputs col-3">
    <label for="email">Bölüm</label>
    <input type="text" name="email" />
  </div>
  <div class="inputs col-3">
    <label for="email">Mezuniyet Yılı</label>
    <select class="mezuniyetoptions" name="" id="">
      <option value="option one"></option>
      <option value="option one">Option One</option>
      <option value="option two">Option Two</option>
    </select>
  </div>
</div>

我想从.inputs类块中的所有表单元素中获取所有值。 请指教。

假设您知道模板中可用选择框和输入字段的ID

样例代码

 $("button").click(function(){ var map={}; var arrayList=[]; map.selectOne=$("#selectOne").val(); map.selectTwo=$("#selectTwo").val(); map.email=$("#email").val(); arrayList.push(map); console.info(arrayList); console.log(map); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <label>selectOne</label> <select id="selectOne"> <option value="option one">Option One</option> <option value="option one">Option Two</option> <option value="option two">Option Three</option> </select> <br> <label>selectTwo</label> <select id="selectTwo"> <option value="option one">Option One</option> <option value="option one">Option Two</option> <option value="option two">Option Three</option> </select> <br> <label for="email">Email</label> <input id="email" type="text" name="email" /> <br> <button>submit</button> 

给定您的div的ID,您当前的选择器$('#'+s+' .inputs').each(function(key, value) {将不起作用,因为您的div上没有具有类inputs id

 $('#get').on('click', function () { var eduarray = []; $('.education-groupbox').each(function (index, el) { eduarray[index] = []; var s = $(this).attr('id'); //console.log(); $('#' + s + ' .inputs').each(function (key, value) { if ($(this).find('select').length) { eduarray[index].push($(this).find('select > option:selected').val()); } if ($(this).find('input').length) { eduarray[index].push($(this).find('input').val()); } }); console.log(eduarray); }); }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="education-groupbox" class="education-groupbox"> <div id="select" class="inputs col-3"> <label for="email">Seviye</label> <select class="seviyeoptions" name="" id=""> <option value="option one"></option> <option value="option one">Option One</option> <option value="option two">Option Two</option> </select> </div> <div id="input" class="inputs col-3"> <label for="email">Okul Adı</label> <input type="text" name="email"/> </div> <div id="input2" class="inputs col-3"> <label for="email">Bölüm</label> <input type="text" name="email"/> </div> <div id="input3" class="inputs col-3"> <label for="email">Mezuniyet Yılı</label> <select class="mezuniyetoptions" name="" id=""> <option value="option one"></option> <option value="option one">Option One</option> <option value="option two">Option Two</option> </select> </div> </div> <button id="get">Get values</button> 

更新

您也可以使用对象/关联数组而不是标准数组,并使用每个元素的name属性值设置对象属性。

 $('#get').on('click', function () { var eduarray = {}; $('.education-groupbox').each(function (index, el) { var s = $(this).attr('id'); //console.log(); $('#' + s + ' .inputs').each(function (key, value) { if ($(this).find('select').length) { eduarray[$(this).find('select').attr('name')] = ($(this).find('select > option:selected').val()); } if ($(this).find('input').length) { eduarray[$(this).find('input').attr('name')] = ($(this).find('input').val()); } }); console.log(eduarray); }); }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="education-groupbox" class="education-groupbox"> <div id="select" class="inputs col-3"> <label for="email">Seviye</label> <select class="seviyeoptions" name="seviyeoptions" id=""> <option value="option one"></option> <option value="option one">Option One</option> <option value="option two">Option Two</option> </select> </div> <div id="input" class="inputs col-3"> <label for="email">Okul Adı</label> <input type="text" name="email"/> </div> <div id="input2" class="inputs col-3"> <label for="email">Bölüm</label> <input type="text" name="email2"/> </div> <div id="input3" class="inputs col-3"> <label for="email">Mezuniyet Yılı</label> <select class="mezuniyetoptions" name="mezuniyetoptions" id=""> <option value="option one"></option> <option value="option one">Option One</option> <option value="option two">Option Two</option> </select> </div> </div> <button id="get">Get values</button> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM