【问题标题】:array of element id with same class具有相同类的元素 id 数组
【发布时间】:2014-06-13 19:47:51
【问题描述】:

我是 Javascript 新手,需要您的帮助。 我想要一个元素 ID 数组以供下次使用。

例子:

<div id="myDiv">
  <input type="checkbox" id="checkbox1" class="checkboxes" value="checkbox1_v">
  <input type="checkbox" id="checkbox2" class="checkboxes" value="checkbox2_v">
  <input type="checkbox" id="checkbox3" class="checkboxes" value="checkbox3_v">
  <input type="checkbox" id="checkbox4" class="checkboxes" value="checkbox4_v">
</div>

我需要的是一个像这样的数组(“checkbox1,checkbox2,checkbox3,checkbox4”)设置为 var,以便在下一个 js 函数中使用,如果选中了相应的复选框,则显示/隐藏 div(使用 forEach 来检查每个复选框和如果选择,则将 .show 设置为 div)。

显示/隐藏我拥有的 js 的一部分,并且在测试中它适用于一个特定的复选框。但是有数组的原因是复选框的数量是动态的,公共属性只有“myDiv”用于外部 div 和输入类。

提前致谢。

【问题讨论】:

    标签: javascript jquery html arrays


    【解决方案1】:

    你可以使用.map()来生成这样的数组

    var ids = $('#myDiv .checkboxes').map(function(){
        return this.id;
    }).get();
    

    在这种情况下,它会生成一个数组,其中包含带有类复选框的所有元素的 ids

    【讨论】:

    • +1 - 我个人会做[].map.call(document.querySelectorAll(".checkboxes"),function(c) {return c.id;}),但无论如何都能完成工作:p
    • 无论如何,如果可以的话,我会给你一个+2,因为你实际上写了this.id,而不是令人心碎的$(this).attr("id")或天堂禁止$("#"+this.id).attr("id")...
    • 那么请将此答案标记为已选,将问题标记为已回答
    【解决方案2】:

    您可以使用.map()

    通过函数传递当前匹配集中的每个元素, 生成一个包含返回值的新 jQuery 对象。

    var idArr = $('#myDiv input[type="checkbox"]').map(function() {
        return this.id
    }).get();
    

    Fiddle Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-13
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 2022-07-07
      相关资源
      最近更新 更多