如何将属于父 div 的同级的同一类的输入元素分组?

Jc 巴兰塔克博

我的 cshtml 文件中呈现的 html。

<div>
    <div>
        <input class="Question" datafield="1" type="text" />  //question 1
    </div>
    <div>
        <input class="Question" datafield="2" type="checkbox" />//question 2
        <input class="Question" datafield="2" type="text" />     //question 2
    </div>
    <div>
        <input class="Question" datafield="3" type="radio" />   //question 3
        <input class="Question" datafield="3" type="radio" />   //question 3
        <input class="Question" datafield="3" type="radio" />   //question 3
    </div>
    <div>
        <select datafield="4" class="Question">                 //question 4
        <option val='sample1'>text1</option>   
        <option val='sample2'>text2</option>   
        </select>
    </div>
</div>

我使用 class 的原因是因为我在循环浏览存储在数据库中的问题时有不同数量的问题。问题是有些问题有多个答案,有些问题是单行答案。

我希望能够将这些元素的值分组为各自问题的答案。我设法添加了一个datafield属性来区分一个组。

目前我的javascript中有这个:

var question = [];
var questions = $('.Question');
$.each(questions, function (i, element) {
});

问题是我想不出$.each将元素分组到数组中的 if 条件

期望的输出:

var x = [datafield1:{input elements with datafield=1}, datafield2:{input elements with datafield=2}, datafield3:{input elements with datafield=3}, datafield4:{input elements with datafield=4}, .. ]

希望是一个我可以循环验证的数组。

for(...)
{
    for()
    {
        if(x[.][.]=='' || undefined)
        return false;
    }
}

注意:问题的数量不同

蒂莫西·格鲁特

让我们在适当的data属性中维护元素中的字段值

<input class="Question" data-field="1" type="text" />  //question 1

然后,您可以在 for 循环中执行此操作,将具有可以追溯到您的问题 ID 的名称的属性添加到对象(此处为 named groupedData):

var groupedData = {};
 
var questions = $('.Question');

$.each(questions, function (i, elem) {
   var questionId = $(elem).data("field");
   if(!groupedData.hasOwnProperty(questionId))
      groupedData[questionId] = [];

   groupedData[questionId].push($(elem).val()); //or whatever information you want to keep per-question.

});

console.log(groupedData);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
    <div>
        <input class="Question" data-field="1" type="text" />
    </div>
    <div>
        <input class="Question" data-field="2" type="checkbox" />
        <input class="Question" data-field="2" type="text" />     
    </div>
    <div>
        <input class="Question" data-field="3" type="radio" />
        <input class="Question" data-field="3" type="radio" />
        <input class="Question" data-field="3" type="radio" />
    </div>
    <div>
        <select data-field="4" class="Question">
          <option val='sample1'>text1</option>   
          <option val='sample2'>text2</option>   
        </select>
    </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将子元素添加到同一类的所有div

来自分类Dev

如何将子div放入父类的填充内?

来自分类Dev

如果同一类有多个输入,如何使用jquery“ append”在“ focus”输入之后添加div?

来自分类Dev

如何使用jQuery将折叠类动态添加到同一类的多个div

来自分类Dev

jQuery-使用同一类将多个元素分组

来自分类Dev

如何将子Div移到另一个嵌套的非父Div中

来自分类Dev

如何将DIV置于另一个父DIV的中心

来自分类Dev

如何将子div沿父div的每一侧居中

来自分类Dev

如何将 div 分离并添加到没有唯一 ID 的父 div

来自分类Dev

如何将3个元素放在父div的一行中?

来自分类Dev

如何将3个元素放在父div的一行中?

来自分类Dev

jQuery .text()多个元素属于同一类

来自分类Dev

如何将父div带到前台?

来自分类Dev

如何将父div带到前台?

来自分类Dev

将 div 与 css Grid Layout 中同一行内的同一类对齐

来自分类Dev

如何将 mouseenter() 或 mouseleave() 添加到同一类的多个元素?

来自分类Dev

如何从jquery中属于同一类的成员的元素中获取所有不同的值?

来自分类Dev

如何指定同一类的多个AppleScript子元素?

来自分类Dev

如何删除同一类的所有元素

来自分类Dev

如何将div设置为嵌套在另一个div内,以及如何使用自动调整的高度和重量填充父div

来自分类Dev

如何将子div与较小的父div居中

来自分类Dev

如何将子div垂直放置在父div的中心?

来自分类Dev

如何将div作为输入

来自分类Dev

使用jQuery分组同一类中不同数量的div,直到“最后一个”类

来自分类Dev

如何将元素附加到div?

来自分类Dev

如何将div元素内联?

来自分类Dev

如何将类设置为div

来自分类Dev

jQuery选择器:同一类的子元素在不同类的div中

来自分类Dev

如何将div与表单的输入元素对齐?

Related 相关文章

  1. 1

    将子元素添加到同一类的所有div

  2. 2

    如何将子div放入父类的填充内?

  3. 3

    如果同一类有多个输入,如何使用jquery“ append”在“ focus”输入之后添加div?

  4. 4

    如何使用jQuery将折叠类动态添加到同一类的多个div

  5. 5

    jQuery-使用同一类将多个元素分组

  6. 6

    如何将子Div移到另一个嵌套的非父Div中

  7. 7

    如何将DIV置于另一个父DIV的中心

  8. 8

    如何将子div沿父div的每一侧居中

  9. 9

    如何将 div 分离并添加到没有唯一 ID 的父 div

  10. 10

    如何将3个元素放在父div的一行中?

  11. 11

    如何将3个元素放在父div的一行中?

  12. 12

    jQuery .text()多个元素属于同一类

  13. 13

    如何将父div带到前台?

  14. 14

    如何将父div带到前台?

  15. 15

    将 div 与 css Grid Layout 中同一行内的同一类对齐

  16. 16

    如何将 mouseenter() 或 mouseleave() 添加到同一类的多个元素?

  17. 17

    如何从jquery中属于同一类的成员的元素中获取所有不同的值?

  18. 18

    如何指定同一类的多个AppleScript子元素?

  19. 19

    如何删除同一类的所有元素

  20. 20

    如何将div设置为嵌套在另一个div内,以及如何使用自动调整的高度和重量填充父div

  21. 21

    如何将子div与较小的父div居中

  22. 22

    如何将子div垂直放置在父div的中心?

  23. 23

    如何将div作为输入

  24. 24

    使用jQuery分组同一类中不同数量的div,直到“最后一个”类

  25. 25

    如何将元素附加到div?

  26. 26

    如何将div元素内联?

  27. 27

    如何将类设置为div

  28. 28

    jQuery选择器:同一类的子元素在不同类的div中

  29. 29

    如何将div与表单的输入元素对齐?

热门标签

归档